为什么循环退出不会?
Why won't while loop exit?
我正在制作一个程序,将用户的学生姓名和成绩收集到向量中,并使用向量计算平均值。当用户键入"done"时,while 循环应该中断并继续下一段代码。但是,我所做的 while 循环不会中断。有没有更有效的方法可以做到这一点?
我尝试创建一个布尔值,当布尔值为真时会中断,但仍然不起作用。
while (name != "done") {
cout << "Enter name and grade: ";
cin >> name;
if (!(cin >> score)) {
cin.clear;
cin.ignore(256, 'n');
cout << "Re-enter grade: ";
cin >> score;
}
else {
studentName.push_back(name);
studentScore.push_back(score);
}
}
while 循环应该在键入"done"时退出,但它创建一个换行符并且不输出任何内容。
当你键入"done"时,循环的其余部分仍然被执行,因为你只是在开始时检查。因此,它希望您接下来输入分数,然后退出。
一种可能的解决方案是在阅读后立即插入break
语句name
if(name == "done") {
break;
}
我认为您可以通过将 while(({} 替换为 do{ }while(( 来轻松解决问题
所以你的代码变成了
do{
cout << "Enter name and grade: ";
cin >> name;
if (!(cin >> score)) {
cin.clear;
cin.ignore(256, 'n');
cout << "Re-enter grade: ";
cin >> score;
}
else {
studentName.push_back(name);
studentScore.push_back(score);
}
}while (name != "done");
相关文章:
- C++ 自动点击器未退出循环
- 使用 while 或 do while 退出循环
- 退出循环,除非未给出输入
- C++线程退出循环条件
- 在C++测试家庭作业问题中的字符串输入时无法退出循环(作为数据验证)
- 虽然具有多个 OR 条件的循环不退出循环
- 如果程序退出循环是goto已删除的本地变量
- 中断语句未退出循环
- 计算平均值,而不向退出循环添加负等级
- 使用键盘挂钩时无法动态退出循环
- 定义时间后退出C 循环
- 使用goto来干净地退出循环
- getchar 有什么问题(因为程序在没有检查的情况下退出循环)
- 尝试退出循环时,Ctrl+Z 不起作用
- 如何获取用户输入以退出循环
- 正在销毁线程并退出循环
- 中断语句不会退出循环
- 通过输入一个特定的字母c++来退出循环
- 在c++中,当输入不是unsigned时立即退出循环
- 编程原理和实践使用C++while-loop演练。找不到退出循环的方法