使用switch语句而不是if

时间:2013-08-18 11:02:24

标签: c# if-statement switch-statement

所以我刚刚开始编程,我开始使用c#。在我正在阅读的书中(学习c#3.0),其中一个练习就是这个。

  

练习5-2。创建一个程序,提示用户输入,接受一个整数,然后   评估输入是零,奇数或偶数,10的倍数,还是太大(更多   通过使用多个if语句级别而不是100)。

我设法做到这一点,但下一个练习是

  

练习5-3。重写练习5-2中的程序来做同样的事情   使用switch语句。

我理解switch语句是如何工作的,但是,我不知道如果用户输入数字是奇数/偶数,10的倍数等等,并且不使用if语句,我不知道如何计算。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

int input = ...
switch (input)
{
    case 0:
        Console.WriteLine("Zero");
        default;
    default:
        switch (input < 100)
        {
            case true:
                switch (Math.Abs(input) % 10)
                {
                    case 0:
                        Console.WriteLine("Multiple of 10");
                        break;
                    case 2:
                    case 4:
                    case 6:
                    case 8:
                        Console.WriteLine("Even");
                        break;
                    default:
                        Console.WriteLine("Odd");
                        break;
                }
                break;
            default:
                Console.WriteLine("Too large");
                break;
        }
        break;
}

我不认为你可以用C#中的单个switch来做到这一点 - 除非你把它变得如此庞大以至于从0到100的每个数字来计算。您可以使用单个Select statement in VB.NET来执行此操作,该操作类似于C#switch但具有明显不同的语义。