1

だから私はプログラミングを始めたばかりで、c#から始めました。私が読んでいる本(c#3.0を学んでいる)では、演習の1つがこれでした。

練習問題 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;
}

switch0 から 100 までのすべての数値を計算できるほど大規模にしない限り、C#の単一の数値でこれを行うことはできないと思います。SelectVB.NETの単一のステートメントでそれを実行できる場合があります。これは C# に似ていますが、switchセマンティクスが大きく異なります。

于 2013-08-18T11:08:02.870 に答える