#include <iostream>
char getGradeLetter(int numericGrade) {
char letterGrade;
switch (numericGrade) {
case 9:
case 10:
letterGrade = 'A';
break;
case 7:
case 8:
letterGrade = 'B';
break;
case 5:
case 6:
letterGrade = 'C';
break;
case 3:
case 4:
letterGrade = 'D';
break;
case 2:
letterGrade = 'F';
break;
default:
// 如果没有匹配的case,返回一个错误标志
return 'X';
}
return letterGrade;
}
int main() {
int numericGrade;
std::cout << "Enter numeric grade (1-10): ";
std::cin >> numericGrade;
char letterGrade = getGradeLetter(numericGrade);
if (letterGrade == 'X') {
std::cout << "Invalid numeric grade entered." << std::endl;
} else {
std::cout << "The letter grade is: " << letterGrade << std::endl;
}
return 0;
}
在这个代码中:
getGradeLetter
函数接受一个整数numericGrade
作为参数,并返回一个字符,代表相应的成绩等级。switch
语句用于检查numericGrade
的值。- 每个
case
对应一个可能的numericGrade
值。如果找到了匹配的case
,则会设置letterGrade
变量,并且执行break
语句跳出switch
语句。 - 如果没有找到匹配的
case
,则会执行default
分支,并返回 ‘X’ 表示无效输入。 - 在
main
函数中,我们从用户那里获取输入,并调用getGradeLetter
函数来获取字母等级,然后输出结果。
注意,如果没有 break
语句,程序将会继续执行后面的 case
直到遇到 break
或者 switch
语句结束,这通常不是期望的行为。