我要求用户输入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: ";
}
}
它有点工作,除了输入错误的值我的控制台反复显示错误信息。如果有人可以帮助我,将不胜感激!
谢谢!
答案 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
的值。循环并没有多大意义。