强制使用switch语句测试条件

问题描述 投票:0回答:1

我的教授给了我们看似简单的作业,但有一个令人沮丧的转折:我们不能使用if / else if / else语句,而必须使用switch语句。作业问题如下:

编写一个程序,该程序将读取大学学生完成的学分时数。根据完成的学分时数,将学生分类为大一,大二,大三或大四(新生:小时<32,大二:32 <=小时<64,初中:64 <=小时<96,高级:96 <=小时)。 不要使用if / else if / else语句。您必须使用switch语句。

我知道如何使用if语句编写该程序,但是我不知道如何使用switch语句编写此程序。从我阅读的内容来看,不应该以这种方式使用switch语句,但是我在这里...请不要回答告诉我使用if语句,因为我不能!

c# if-statement switch-statement
1个回答
-1
投票

我不太愿意让Stack Overflow帮助您完成作业,但是我要假设您确实很沮丧,只需要一点帮助:-)

[如果我不得不猜测,您以错误的方式思考问题。跳出框框思考,不要再考虑使用数字开关,而是使用大学分类...

enum CollegeClassificationEnum
{
    Freshman,
    Sophomore,
    Junior,
    Senior
}

private CollegeClassificationEnum WhatAmI(int hoursAttended)
{
    foreach (var collegeClassification in (CollegeClassificationEnum[])Enum.GetValues(typeof(CollegeClassificationEnum)))
    {
        switch (collegeClassification)
        {
            case CollegeClassificationEnum.Freshman:
                if (hoursAttended < 32) return collegeClassification;
                break;
            case CollegeClassificationEnum.Sophomore:
                if (hoursAttended >= 32 && hoursAttended < 64) return collegeClassification;
                break;
            case CollegeClassificationEnum.Junior:
                if (hoursAttended >= 64 && hoursAttended < 96) return collegeClassification;
                break;
            case CollegeClassificationEnum.Senior:
                return collegeClassification;
        }
    }

    throw new Exception("Fake exception necessary to prevent compiler error");
}
© www.soinside.com 2019 - 2024. All rights reserved.