使用循环将输入限制为仅y / n

时间:2014-12-03 16:38:29

标签: c++ loops

我是编程新手,我需要帮助完成我的这项功课。我试图搜索这个问题,但因为我对编程很陌生,所以我不知道应该搜索什么。

我的问题是,如果用户没有输入' y'或者' n',我希望程序再次向他们询问相同的问题,以便程序只有在用户输入“' y”时才会继续。或者' n'

我在下面写的代码让我陷入循环,它会一直问我"输入另一个值(y / n)?:"不管我的回答如何。

do{
    cout << "Please enter a numerical value: ";
    cin >> value[n];
    n++;    
    do{
        cout << "Enter another value (y/n)?: ";
        cin >> ans;
    } while (answer != 'y' || answer != 'n');
} while (answer == 'y');

1 个答案:

答案 0 :(得分:3)

真相表时间:

answer  |  not y  |  not n  |  not y OR not n
---------------------------------------------------
  y     |  false  |  true   |      true
  n     |  true   |  false  |      true
  x     |  true   |  true   |      true

正如您所看到的,没有办法让您的条件成为false。当输入为falsey时,您预计会n,但这不是正在发生的事情。你怎么解决这个问题?你怎么能只在最后一行做出true