c++ - 当 bool 为真时我应该在哪里做
问题描述
我编写了一个程序,它输出相当于用户在控制台中写入的数字等级的名称。
1 失败
2 满意
3 好
4 非常好
5 优秀
现在我想问用户他是否想在第一次运行后继续输入成绩,
例如
输入等级 -> 5 优秀 您要继续输入等级吗?1 - 是/ 0 - 否
当 bool 为真时,我不知道在哪里放置 do ..
int main()
{
int grade;
do
{
cout << "input your grade: \n";
cin >> grade;
if (grade < 1 || grade > 5)
{
cout << "input grade again!\n";
}
} while (grade < 1 || grade > 5);
switch (grade)
{
case 1:
cout << "fail\n";
break;
case 2:
cout << "satisfactory\n";
break;
case 3:
cout << "good\n";
break;
case 4:
cout << "very good\n";
break;
case 5:
cout << "excellent\n";
break;
}
return 0;
}
解决方案
您只需要另一个do-while 语句即可进行重复的过程。我已经初始化了一个名为(始终进行初始化以避免未定义的行为和难以跟踪的错误)char
的变量,以在每次迭代中检查用户想要什么(继续或结束程序)。userChoice
//previous codes...
char userChoice = 'n';
do{
// previous codes which you want to be repeated
std::cout << "\nDo you want to continue ? (y = Yes, n = No ) "; // ask the user to continue or to end
std::cin >> userChoice; // store user's input in the userChoice variable
}while(userChoice); // if user's input is 'y' then continue with next iteration
//rest of the code...
推荐阅读
- php - 测试时 Laravel 邮件问题
- python - 屏蔽 Y 数组以仅获取 X1==X2 的值
- python - Python Flask:超时通过 SQL Alchemy ORM + Pandas 执行的查询
- android - 在json对象上构建特定对象循环递归函数的arraylist
- java - AES 加密/解密 Java => OpenSSL 命令行工具
- c# - 我无法结束一个线程
- angular - 如何根据keyin字母而不是angular2中的狂野搜索来搜索数据
- python - 将单列 csv 数据转换为具有多列的新 csv 文件
- ruby - Ruby:nil:NilClass /继承问题的未定义方法`[]'?
- python - H2O 服务器初始化在不同的环境中崩溃