C#关于switch怎么搞范围的不会了

因为只学了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;
}