循环逃逸范围

时间:2011-10-09 20:02:12

标签: 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 >> oneChoice;
break;
}

3 个答案:

答案 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)

假设oneChoiceint(例如,因此不能具有介于1和2之间的值),只需将条件更改为:

while (!(1 <= oneChoice && oneChoice <= 5))

或等同于:

while (oneChoice < 1 || oneChoice > 5)

此外,如果oneChoice在进入循环之前没有真正的意义或重要性,那么最好使用do { ... } while (oneChoice < 1 || oneChoice > 5);循环。