【发布时间】:2016-07-15 13:53:44
【问题描述】:
我编写此代码是为了提示用户输入不是 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; -
如果用户输入 5,您需要将某种标志(布尔变量)设置为 true,然后在打印获胜消息之前检查它。
-
我非常惊讶每个人的回复速度如此之快!非常感谢大家的提示。以前从未真正听说过布尔标志。非常感谢你:)
-
@Lucky.Tiger 这就是让我感到难过的地方,社区往往是明智但缺乏经验的程序员的障碍。