因为只学了switch判断变量是否等于固定值,对这个带范围的不知道怎么答了,想不出来,求解,要求使用switch解决
题目:
输入分数,如果
成绩>=90;A
90>成绩>=60;B
成绩<60;C
最后输出学生考试等级。
用if会算,直接判定,用switch搞不定了
switch只能处理多固定值判断,但是逐一列举太多了,可以考虑使用成绩的十位作为判据
switch(成绩/10)
{
case 10:case 9:
//A
break;
case 8:case 7:case 6:
//B
break;
default:
//C
break;
}
额,这玩意有些麻烦了,因为在2022年 switch已经和2008年完全不一样的
我来写个2022年的,后面的人要是愿意给你写2008年的
//C#8.0已经允许这样了
int i = 59;
var res = i switch
{
>=90=>"A",
>=60 and <90=>"B",
<60=>"C"
};
Console.WriteLine($"输入成绩{i},评价为{res}");
Console.ReadKey();
//C# 9.0允许这样
switch (i)
{
case >= 90:
Console.WriteLine("A");
break;
case >= 60 and < 90:
Console.WriteLine("B");
break;
default:
Console.WriteLine("C");
break;
}
代码像是这样吧
#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;
}