C ++循环用户输入直到正确

时间:2014-10-20 14:09:49

标签: c++ loops input

我要求用户输入0到127之间的输入,如果他们没有输入正确的值,我希望程序在输入正确的值之前继续询问它们。

目前我在课堂上有以下代码:

void setNoteNumber (int value)
{

    number = value;

    while (value < 0 || value > 127) {

    std::cout << "This number is not in the range of 0 - 127, please select a new value: ";

    }
}     

它有点工作,除了输入错误的值我的控制台反复显示错误信息。如果有人可以帮助我,将不胜感激!

谢谢!

3 个答案:

答案 0 :(得分:1)

你需要在循环内部使用cin(请求用户输入)才能实际工作。由于你没有显示cin调用,我假设它在函数之外,但它需要在while循环中,因为你想要反复询问用户。

答案 1 :(得分:1)

程序设计目前是错误的,value在while循环中不会改变,所以它是无限的。这样的事情可能会更好:

bool setNoteNumber(int value); //return false if value is outside range
//main loop
do {
    value = getInput();
} while(setNoteNumber(value))

答案 2 :(得分:1)

你的设计错了。 if声明可以更好地发挥作用。

示例:

if (value < 0 ||value > 127) {

std::cout << "This number is not in the range of 0 - 127, please select a new value: ";

}

你的循环是错误的,因为它是无限的,因为当值&lt; 0&amp;&amp;价值&gt; 127,它将永远运行。您根本不修改value的值。循环并没有多大意义。