1

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

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

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

练习 5-3。重写练习 5-2 中的程序,用 switch 语句做同样的工作。

我了解 switch 语句的工作原理,但是,如果用户输入的数字是奇数/偶数、10 的倍数等等,我不确定如何解决,并且不使用 if 语句。感谢您的任何帮助。

4

1 回答 1

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;
}

我不认为你可以用switchC# 中的单个数字来做到这一点——除非你把它做得如此庞大,以至于可以从 0 到 100 的每个数字中计算。您可以使用SelectVB.NET 中的单个语句来完成此操作,该语句类似于 C# switch,但语义明显不同。

于 2013-08-18T11:08:02.870 回答