【发布时间】:2021-03-18 18:08:32
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
char grade;
cout << "What grade did you earn in Programming I ?" << endl;
cin >> grade;
switch (grade) // This is where the switch statement begins
{
case 'A': cout << "an A - excellent work !" << endl;
break;
case 'B': cout << "you got a B - good job" << endl;
break;
case 'C': cout << "earning a C is satisfactory" << endl;
break;
case 'D': cout << "while D is passing, there is a problem" << endl;
break;
case 'F': cout << "you failed - better luck next time" << endl;
break;
default: cout << "You did not enter an A, B, C, D, or F" << endl;
}
return 0;
}
我应该添加一个语句,另外打印出“你通过了!”如果用户输入 D 或更高的等级。我知道我可以手动完成:
case 'A': cout << "YOU PASSED!" << endl;
cout << "an A - excellent work !" << endl;
break;
case 'B': cout << "YOU PASSED!" << endl;
cout << "you got a B - good job" << endl;
break;
(等)
但我很好奇是否有办法通过 switch 语句顶部的单个语句来完成它,例如
case 'A' || 'B' || 'C' || 'D': cout << "YOU PASSED!" << endl;
或
case 'A': case: 'B':(etc): cout << "YOU PASSED!" << endl;
我知道(通过尝试)那些行不通。
【问题讨论】:
-
switch上方的单独条件检查。if (grade >= 'A' && grade <= 'D') std::cout << "YOU PASSED!\n"; -
欢迎来到 Stack Overflow!如果你需要帮助改进工作代码,你应该在CodeReview.SE 上发布。如果您决定这样做,请在此处删除问题。
-
谢谢 sweenish,我试图在现有的 switch 语句中添加额外的检查,而不是在上面添加。 '
-
另一种选择是添加一个传递给代码的布尔值,或者将其初始化为真,但为 D/F 设置为假,或者初始化为假并为 A-B-C 设置为真。然后在开关下方,输出更多信息。
-
拥有默认大小写
return 0;,然后将cout << "YOU PASSED!" << endl;放在switch之后。
标签: c++ switch-statement