C#开关箱不';不出现

C#开关箱不';不出现,c#,C#,所以,我对整个C语言还不太熟悉,有人让我们把简单的if-else转换成switch。我只知道这些。对吗?如果没有,你能告诉我问题出在哪里吗?还是缺少什么?这里唯一的问题是开关盒的输出没有出现 static void Main(string[] args) { Console.Write("Enter Name: "); string studname = Console.ReadLine(); Console.Write("Ent

所以,我对整个C语言还不太熟悉,有人让我们把简单的if-else转换成switch。我只知道这些。对吗?如果没有,你能告诉我问题出在哪里吗?还是缺少什么?这里唯一的问题是开关盒的输出没有出现

    static void Main(string[] args)
    {

        Console.Write("Enter Name: ");
        string studname = Console.ReadLine();
        Console.Write("Enter Age: ");
        string age = Console.ReadLine();
        Console.Write("Enter Year Level: ");
        int level = int.Parse(Console.ReadLine());
        Console.Write("Enter Course: ");
        string course = Console.ReadLine();
        Console.Write("Enter Score 1: ");
        int num1 = int.Parse(Console.ReadLine());
        Console.Write("Enter Score 2: ");
        int num2 = int.Parse(Console.ReadLine());
        Console.Write("Enter Score 3: ");
        int num3 = int.Parse(Console.ReadLine());
        int total = num1 + num2 + num3;
        int ave = (num1 + num2 + num3) / 3;
        int rate = ave;




        Console.WriteLine("");
        Console.WriteLine("");
        Console.WriteLine("");
        Console.Write("Student Name: " + studname);
        Console.WriteLine("");
        Console.Write("Student Age: " + age);
        Console.WriteLine("");
        Console.Write("Student Year Level: " + level);
        Console.WriteLine("");
        Console.Write("Student Course: " + course);
        Console.WriteLine("");
        Console.Write("Score 1: " + num1);
        Console.WriteLine("");
        Console.Write("Score 2: " + num2);
        Console.WriteLine("");
        Console.Write("Score 3: " + num3);
        Console.WriteLine("");
        Console.Write("Total_Score= " + total);
        Console.WriteLine("");
        Console.Write("Total_Average= " + ave);


        switch (rate)
        {
            case 1:
                if (rate < 100 && rate > 90)

                Console.Write("Rate = 1.00");
                Console.WriteLine("");
                Console.Write("Hi! " + studname + "you Passed");
                Console.WriteLine("");
               break;


            case 2:
                if (rate < 89 && rate > 85)

                    Console.Write("Rate = 1.00");
                Console.WriteLine("");
                Console.Write("Hi! " + studname + "you Passed");
                Console.WriteLine("");
                break;

            case 3:
                if (rate < 84 && rate > 80)

                    Console.Write("Rate = 1.00");
                Console.WriteLine("");
                Console.Write("Hi! " + studname + "you Passed");
                Console.WriteLine("");
                break;

            case 4:
                if (rate < 79 && rate > 75)

                    Console.Write("Rate = 1.00");
                Console.WriteLine("");
                Console.Write("Hi! " + studname + "you Passed");
                Console.WriteLine("");
                break;

            case 5:
                if (rate < 75)

                    Console.Write("Rate = 5.00");
                Console.WriteLine("");
                Console.Write("Hi! " + studname + "you Failed");
                Console.WriteLine("");
                break;


        }





        Console.ReadLine();
    }
static void Main(字符串[]args)
{
控制台。写入(“输入名称:”);
字符串studname=Console.ReadLine();
控制台。写入(“输入年龄:”;
string age=Console.ReadLine();
控制台。写入(“输入年份级别:”);
int-level=int.Parse(Console.ReadLine());
控制台。写入(“输入课程:”;
字符串course=Console.ReadLine();
控制台。写入(“输入分数1:”;
int num1=int.Parse(Console.ReadLine());
控制台。写入(“输入分数2:”;
int num2=int.Parse(Console.ReadLine());
控制台。写入(“输入分数3:”;
int num3=int.Parse(Console.ReadLine());
整数总计=num1+num2+num3;
int ave=(num1+num2+num3)/3;
积分率=平均值;
控制台。写线(“”);
控制台。写线(“”);
控制台。写线(“”);
控制台。写(“学生姓名:”+studname);
控制台。写线(“”);
控制台。写入(“学生年龄:+年龄”);
控制台。写线(“”);
控制台。写入(“学生年级别:+级别”);
控制台。写线(“”);
控制台。编写(“学生课程:+课程”);
控制台。写线(“”);
控制台。写入(“分数1:+num1”);
控制台。写线(“”);
控制台。写入(“分数2:+num2”);
控制台。写线(“”);
控制台。写入(“分数3:+num3”);
控制台。写线(“”);
控制台。写入(“总分=”+总分);
控制台。写线(“”);
控制台。写入(“总平均值=”+ave);
开关(速率)
{
案例1:
如果(比率<100和比率>90)
控制台。写入(“速率=1.00”);
控制台。写线(“”);
控制台。写“嗨!”+studname+“你通过了”);
控制台。写线(“”);
打破
案例2:
如果(比率<89&比率>85)
控制台。写入(“速率=1.00”);
控制台。写线(“”);
控制台。写“嗨!”+studname+“你通过了”);
控制台。写线(“”);
打破
案例3:
如果(比率<84&&比率>80)
控制台。写入(“速率=1.00”);
控制台。写线(“”);
控制台。写“嗨!”+studname+“你通过了”);
控制台。写线(“”);
打破
案例4:
如果(比率<79&&比率>75)
控制台。写入(“速率=1.00”);
控制台。写线(“”);
控制台。写“嗨!”+studname+“你通过了”);
控制台。写线(“”);
打破
案例5:
如果(比率<75)
控制台。写入(“速率=5.00”);
控制台。写线(“”);
控制台。写“嗨!”+studname+“你失败了”);
控制台。写线(“”);
打破
}
Console.ReadLine();
}

您误解了开关的功能。如果您正在测试的值仅采用少数设定值中的一个,则会使用该选项

试着完全去掉
开关
-块,然后重新编写它以使用一系列
if
/
else
-块。还要注意,您需要处理边缘情况,如
rate=90
;您还需要检查
rate>=90
以捕获此案例:

if (rate < 100 && rate >= 90)
{
    Console.Write("Rate = 1.00");
    Console.WriteLine("");
    Console.Write("Hi! " + studname + "you Passed");
    Console.WriteLine("");
}
else if (rate < 89 && rate >= 85)
{
    Console.Write("Rate = 1.00");
    Console.WriteLine("");
    Console.Write("Hi! " + studname + "you Passed");
    Console.WriteLine("");
}
else ...
甚至像这样:

Console.Write("Rate = {0}", (rate >= 75) ? "1.00" : "5.00");
Console.WriteLine("");
Console.Write("Hi! {0} you {1}", studname, (rate >= 75) ? "Passed" : "Failed");
Console.WriteLine("");

您的case值不正确,switch语句正在打开case值,因此在本例中,仅当rate==1时才会调用case 1,以此类推,因此,您需要修改这些值,以便将其输出。

在我的脑海中出现了“重构”和“干弹簧”这两个词……这听起来像是OP以if语句开始,并希望将其作为开关盒来编写……这在本例中没有意义。
Console.Write("Rate = {0}", (rate >= 75) ? "1.00" : "5.00");
Console.WriteLine("");
Console.Write("Hi! {0} you {1}", studname, (rate >= 75) ? "Passed" : "Failed");
Console.WriteLine("");