C ++结束迭代但不循环

时间:2015-09-19 18:47:25

标签: c++

我想运行一个循环并检查valid input,如果无效则跳出迭代并从我要求输入的循环开始处开始。

close = false;
int direction
while (!close){

    if (!(cin >> direction)){
        cout << "not valid: " << endl;
        continue;
    }
    close = true;
}

然而,当我运行它时,我只能输入一次方向,并且在达到继续时不再重新输入。如何结束itteration并让用户重试。

当将变量添加到while循环并从while循环上方删除时(它在while循环中是局部的并且在外部销毁而不是在右边?),如

while (!close){
    int direction;
    ////
 }

它也不起作用。我知道代码的整个部分可能会更好,但我刚开始使用c ++,并且我试图理解为什么它的工作方式与我期望的一样。

1 个答案:

答案 0 :(得分:0)

为什么不使用while循环?

while(! (cin >> x)) {
    cout << "invalid input " << endl;
}