因为只学了switch判断变量是否等于固定值,对这个带范围的不知道怎么答了,想不出来,求解,要求使用switch解决
题目:
输入分数,如果
成绩>=90;A
90>成绩>=60;B
成绩<60;C
最后输出学生考试等级。
用if会算,直接判定,用switch搞不定了
switch本来就搞不定,谁能搞定我也来学学~
把score/10作为switch的条件,相当于取出十位数,那么分别设置case1,2,3,4,5,6,7,8,9,10对应的等级就好了
#include<iostream>
using namespace std;
int main() {
int a;
string grade;
cin>>a;
switch(a/10){
case 0:
grade = "C";
break;
case 1:
grade = "C";
break;
case 2:
grade = "C";
break;
case 3:
grade = "C";
break;
case 4:
grade = "C";
break;
case 5:
grade = "C";
break;
case 6:
grade = "B";
break;
case 7:
grade = "B";
break;
case 8:
grade = "B";
break;
case 9:
grade = "A";
break;
case 10:
grade = "A";
break;
}
cout<<grade;
}
可以使用switch case when表达式来解决
string Grade(int num)
{
return num switch
{
int a when a >= 90 => "A",
int a when a >= 60 => "B",
_ => "C"
};
}
成绩除以10,判断十位数不就行了
switch(grade/10)
{
case 9:
break;
//...后续省略
}