Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ While循环逃逸范围_C++_While Loop - Fatal编程技术网

C++ While循环逃逸范围

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循环,当我打到数字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;
}
假设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";
}