考虑:
#include <iostream>
using namespace std;
int main()
{
int score;
char grade;
cout << "Enter your score: " << endl;
cin >> score;
if (score >= 90)
grade = 'a';
if (score >= 80)
grade = 'b';
if (score >= 70)
grade = 'c';
if (score >= 60)
grade = 'd';
else
grade = 'f';
cout << grade << endl;
switch (grade) {
case 'a':
cout << "Good job" << endl;
break;
case 'c':
cout << "Fair job" << endl;
break;
case 'f':
cout << "Failure" << endl;
break;
default:
cout << "invalid" << endl;
}
cin.get();
return 0;
}
为什么当我输入 95
时却给出默认的 switch case,而我应该得到 case 'a'?
最佳答案
您遗漏了一堆 else
,或者以错误的顺序进行比较。
95 大于 90,但也大于 80、70 和 60。所以你会得到一个“d”。
(并且您没有在 switch 中处理“d”。)
关于c++ - C++中的switch语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588364/