C++ While循环逃逸范围
我有一个while循环,当我打到数字1到5时,我希望能逃脱 最好的说法是什么 我现在有这个C++ While循环逃逸范围,c++,while-loop,C++,While Loop,我有一个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 >> one
while ( oneChoice!= 1 || oneChoice!= 2 || oneChoice!= 3 || oneChoice!= 4 || oneChoice!= 5 )
{
cout << "Please make a selection" << endl;
cout << "Choose once more: ";
cin >> oneChoice;
break;
}
假设oneChoice是int,因此不能有介于1和2之间的值,例如,只需将条件更改为:
while (!(1 <= oneChoice && oneChoice <= 5))
或者,相当于:
while (oneChoice < 1 || oneChoice > 5)
此外,如果oneChoice在进入循环之前没有真正的意义或重要性,那么在oneChoice<1 | | oneChoice>5时使用do{…}可能是更好的做法;改为循环。我会这样做:
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";
}
中断在中间,以便只有当用户输入可接受范围之外的值时才打印错误消息。对于对于不希望在顶部或底部测试退出条件的循环,C族是合适的习惯用法。
这意味着只要任何东西不在该范围内,它就是错误的?意味着范围内的任何东西都是真的意味着它会离开?是的。不要在循环中使用中断。我必须在我做的事情中使用中断。那是什么或在那里做什么?应该是| |。哦,对了,替代代币。那些只存在于依赖于ISO166国家变体的系统一阶,不再存在这样的系统,除非在C++遵从性测试中,否则不应该使用它。它在另一个循环中使用,而在断言断言中,循环从最内层的环路或交换机中中断;在此上下文中,它使循环中的代码执行不超过一次,而与oneChoice的值无关。换句话说,考虑到你所说的这是应该做的,它不应该在那里。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";
}