我有一个while循环,我希望在我按下数字1到5时逃脱。
最好的陈述是什么?
我现在有这个。
while ( oneChoice!= 1 || oneChoice!= 2 || oneChoice!= 3 || oneChoice!= 4 || oneChoice!= 5 )
{
cout << "Please make a selection" << endl;
cout << "Choose once more: ";
cin >> oneChoice;
break;
}
答案 0 :(得分:3)
我会这样做:
int n;
for (;;)
{
cout << "Please make a selection (1-5): "
cin >> n;
if (n >= 1 && n <= 5) break;
cout << "You must choose a number from 1 through 5.\n";
}
中断位于中间,以便仅在用户输入超出可接受范围的值时才打印错误消息。 for (;;)
是适合循环的C系列习语,您不希望在顶部或底部测试退出条件。
答案 1 :(得分:2)
while (oneChoice < 1 or oneChoice > 5)
{
//
}
答案 2 :(得分:2)
假设oneChoice
是int
(例如,因此不能具有介于1和2之间的值),只需将条件更改为:
while (!(1 <= oneChoice && oneChoice <= 5))
或等同于:
while (oneChoice < 1 || oneChoice > 5)
此外,如果oneChoice
在进入循环之前没有真正的意义或重要性,那么最好使用do { ... } while (oneChoice < 1 || oneChoice > 5);
循环。