【发布时间】:2017-06-26 21:52:14
【问题描述】:
我编写了一些代码来检查用户是否使用 while 循环输入了正确的输入类型。问题是每次输入错误的字符后,它都会重新循环。
但是当您输入多个字符时,它会一次又一次地循环相同的cout 语句。例如,如果我输入“qwerty”,当我只希望它运行一次时,它会输出那些
cout` 语句 6 次。
代码如下:
#include <iostream>
using namespace std;
int main(){
// Declare the variables
int choice = 0;
bool valid = false;
while(!valid){
valid = true;
//Ask the user for their choice
cout << "Which function would you like to use? \n";
cout << "1) Average Function \n";
cout << "2) Mean Absolute Deviation Function \n";
cout << "3) Number Sorting Function \n";
cout << "4) Median Function \n";
cout << "5) All of the above \n";
cout << "6) Calculator Function \n";
cout << "Your choice: ";
cin >> choice;
if(cin.fail() || choice > 6 || choice < 1){
cout << "ERROR, PLEASE ENTER ONLY VALID SYMBOLS \n";
cout << "--------------------- \n";
valid = false;
cin.clear();
cin.ignore();
}
}
}
【问题讨论】:
-
我不确定如何使用调试器:/
-
@PeteMcGreete 在没有调试技能的情况下,只需在其中粘贴几个
couts肯定会帮助您了解程序执行某些阶段的控制流和变量值。绝对值得学习使用调试器,因为它更快,而且您不必返回代码,撕掉cout语句。 -
但是当您输入多个字符时,它会一次又一次地循环相同的
cout语句。例如,如果我输入 qwerty,当我只希望它运行一次时,它会输出那些cout语句 6 次。 -
@PeteMcGreete,你应该在问题中这么说。这是您所要求的关键部分!我已将其添加到问题中。
-
另外,请显示完整代码。如果没有
main(),它将只添加 5-6 行来使其成为一个完整的程序而不仅仅是一个函数。见stackoverflow.com/help/mcve
标签: c++ function loops while-loop