2016-10-16 5 views
-2

Я пытаюсь написать код, чтобы отобразить int, который должен быть между 5 и 15. Я написал следующий код:C++ цикл в то время как вопрос

int main() 
{ 
    int num; 

    cout << "Enter a number "; 
    cin >> num; 

    if (num < 100) 
     cout << "Please enter a number 5 or higher" << endl; 
    if ((num > 5) && (num <= 15)) 
     cout << "you number is" << number << endl; 
    if (num > 15) 
     cout << "Please enter a number 15 or lower" << endl; 
    { 
    while (num < 5); 
    cout << "Enter a number "; 

    return 0; 

} 

У меня возникли проблемы с while заявления.

Если я вхожу в 5, я должен сказать you need to enter a valid number, но петля while не зацикливание назад к вершине, он будет говорить please enter in a number и я не могу войти в любом количестве. Я смущен.

+0

Я знаю, что средняя часть должна быть Мнимая в качестве переменной – fackkcoding

+0

Боковое примечание: имя пользователя напомнило мне одну красивую библиотеку - https://github.com/mattdiamond/fuckitjs (которую, возможно, нужно портировать на C++, чтобы получить произвольный текст для запуска :)) –

+0

да не было полезно @ AlexeiLevenkov – fackkcoding

ответ

0

Ваш код не совсем близко к правильному. Он должен выглядеть как это вместо:

int num; 

cout << "Enter a number "; 
do 
{ 
    cin >> num; 
    if ((num >= 5) && (num <= 15)) 
     break; 

    cout << "Please enter a number between 5 and 15" << endl; 
} 
while (1); 

cout << "your number is " << num << endl; 
0

Смотреть это:

int main() 
{ 
    int num; 
    cout<<"Enter a number:"; 
    cin>>num; 
    while(!(num>=5 && num<=15)) 
    { 
     cout<<"\nEnter a number between 5 and 15:"; 
     cin>>num; 
    } 
    cout<<"\nYour number is:"<<num; 
    return 0; 
} 
1

Вы делаете две ошибки с While-цикл. Прежде всего, вы сразу же закрываете цикл while точкой с запятой: while (num < 5);. Затем, если данный номер не находится в интервале [5, 15], вы хотите повторить весь код, включая часть, отображающую сообщения. Поскольку вы хотите выполнить часть, запрашивающую число, по крайней мере, один раз, вы также можете использовать цикл do-while.

Если вы действительно хотите другое сообщение для слишком малого или большого числа, вы можете использовать этот код (не тестировалось).

int main() 
{ 
    int const numMin = 5; 
    int const numMax = 15; 
    int num; 

    cout << "Enter a number between " << numMin << " and " << numMax << ": "; 

    do 
    { 
    cin >> num; 

    if (num < numMin) 
     cout << "Please enter a number " << numMin << " or higher\n"; 

    else if (num > numMax) 
     cout << "Please enter a number " << numMax << " or lower\n"; 

    } while (num < numMin or num > numMax); 

    cout << "You gave me the number " << num << endl; 
} 
1

Правильный синтаксис для цикла в то время как это:

while (condition) 
{ 
actions if conditions are met 
} 

Ниже у меня есть сокращенный вариант этого кода, который должен работать. Так как вы хотите только число от 5 до 15 лет, вы должны убедиться, что> 5 не> = 5 или < 15 не < = 15.

int main() 
{ 
int num; 
cout<<"Please enter a number between 5 and 15: "<<endl; 
cin>>num; 
while (!(num>5 && num<15)) 
{ 
    cout<<"You need to enter a valid number: "<<endl; 
    cin >> num; 
} 
cout << "Your number is : "<<num<<endl; 
} 
Смежные вопросы