2015-05-18 1 views
1

Я шел через очень полезный список программ для создания на C++ форум:Использовать ли я: Пока, для или делать-пока?

http://www.cplusplus.com/forum/articles/12974/

Я в настоящее время на третьей программе под названием в то время как (пользователь == доверчивы) .Отель форум говоря, что я должен научиться использовать для while-while циклов для этой конкретной программы, которая заставляет пользователя вводить любое число, отличное от номера попытки (так что, если число попыток равно 1, программа будет выводить «Введите любой номер кроме 1: "). Я могу завершить программу, если пользователь вводит номер попытки, но я хочу, чтобы программа завершилась с десятью попытками, с которыми у меня возникают проблемы. Моя программа до сих пор выглядит следующим образом:

int main() 

{ 
    int numberOfAttempts = 0; 
    int userGuess; 
    cout << "Enter any number other than " << numberOfAttempts << ": "; 
    cin >> userGuess; 

    while (userGuess != numberOfAttempts) 
    { 
     numberOfAttempts += 1; 
     cout << "Enter any number other than " << numberOfAttempts << ": "; 
     cin >> userGuess; 
    } 

    if (userGuess == numberOfAttempts) 
    { 
     cout << "Hey! I told you to enter any number other than " << numberOfAttempts << "!"; 
     return 0; 
    } 

    if (numberOfAttempts == 10) 
    { 
     cout << "Wow! You're a hell of a lot more patient than me! You win."; 
     return 0; 
    } 
} 

У меня проблема, когда программа полностью игнорирует последний «если» заявление. Я не ищу, чтобы кто-то решал мою проблему, мне просто нужно немного советов. Что я должен использовать (если должен), кроме операторов «while» и «if»?

Заранее благодарен!

+0

Конечно, это игнорирует его, если вы поместите ваш 'if' ВНЕ цикла ... – Nidhoegger

+0

Итак, это так же просто, как включение операторов if if внутри оператора while? @Nidhoegger –

+0

@MarcFreeman Yeap. – Javia1492

ответ

1

Ваши if заявления за пределами цикла:

while (userGuess != numberOfAttempts) 
{ 
    numberOfAttempts += 1; 
    cout << "Enter any number other than " << numberOfAttempts << ": "; 
    cin >> userGuess; 

    if (userGuess == numberOfAttempts) 
    { 
     cout << "Hey! I told you to enter any number other than " << numberOfAttempts << "!"; 
     return 0; 
    } 

    if (numberOfAttempts == 10) 
    { 
     cout << "Wow! You're a hell of a lot more patient than me! You win."; 
     return 0; 
    } 
} 

Это то, что вы ищете. Что касается вашего комментария: вы можете разместить столько областей, сколько хотите. Если вы хотите, чтобы ваш if выполнялся в каждом раунде, конечно, вы должны включить его в круглые скобки.

1

Вы должны разместить следующий if состояние внутри while цикла, если вы предпочитаете работать максимум в 10 раз и ввести значение 10 в качестве userGuess

if (numberOfAttempts == 10) 
    { 
     cout << "Wow! You're a hell of a lot more patient than me! You win."; 
     return 0; 
    } 
Смежные вопросы