Я сделал этот код, чтобы предложить пользователю номер, который не равен 5, в противном случае игра заканчивается. Если пользователь вводит число 10 раз, он должен показывать выигрышное сообщение. Тем не менее, я нахожусь в попытке не показывать выигрышное сообщение, если пользователь вводит 5. Что я мог сделать, чтобы печатать только сообщение об ошибке, когда пользователь вводит 5, а не оба? Кроме того, есть ли способ сделать мой код проще?Для трюков петли
for (int i = 0; i < 10; i++)
{
cout << i+1 << "- enter a number: ";
cin >> number;
if (number == 5)
{ cout << "you were not supposed to enter 5!\n"; // Failure message
break;
}
}
cout << "Wow, you're more patient than I am, you win.\n"; // winner message
'bool did_user_enter_5 = false;' ... 'if (number == 5) {did_user_enter_5 = true; ...} '...' if (! did_user_enter_5) cout << "Wow, ..." - это один из способов, который работает. Вы также можете использовать 'goto' вместо' break' для перехода после получения выигрышного сообщения напечатаны или вы можете сделать это в другую функцию и изменить 'break' на' return; ' – immibis
Вам нужно установить какой-то флаг (переменная bool) в true, если пользователь вводит 5, а затем проверяет, что перед тем, как распечатать выигрыш сообщение – NathanOliver
Я очень изумлен, насколько быстро все ответили на это! Большое вам спасибо за советы. Никогда не слышал о булевых флагах раньше. Спасибо вам большое :) –