2012年5月23日水曜日

開発環境

  • Microsoft Windows 7 Home Premium (OS)
  • Microsoft Visual C# 2010 Express Edition (IDE)
  • 言語: C#

『初めてのC# 第2版』(Jesse Liberty+Brian MacDonald著、日向俊二訳、オライリー・ジャパン、2006年、ISBN978-487311-294-7)の 第5章(実行制御)5.5(練習問題)、練習5-2を解いてみる。

練習5-2.

if文

コード

using System;

namespace Sample
{
    class Tester
    {
        public void Run()
        {
            while (true)
            {
                string msg;
                Console.Write("数値を入力: ");
                string str = Console.ReadLine();
                if (str == "")
                {
                    break;
                }
                int n = Convert.ToInt32(str);
                if (n >= 100)
                {
                    msg = "大きすぎる値";
                }
                else if (n % 10 == 0)
                {
                    msg = "10の倍数";
                }
                else if (n % 2 == 0)
                {
                    msg = "偶数";
                }
                else if (n % 2 == 1)
                {
                    msg = "奇数";
                }
                else
                {
                    msg = "?";
                }
                Console.WriteLine(msg);
            }
        }
        static void Main()
        {
            Tester t = new Tester();
            t.Run();
        }
    }
}

入出力結果(Console Window)

数値を入力: 1000
大きすぎる値
数値を入力: 100
大きすぎる値
数値を入力: 98
偶数
数値を入力: 97
奇数
数値を入力: 96
偶数
数値を入力: 50
10の倍数
数値を入力: 49
奇数
数値を入力: 48
偶数
数値を入力: 5
奇数
数値を入力: 2
偶数
数値を入力:
続行するには何かキーを押してください . . .

switch文

コード

using System;

namespace Sample
{
    class Tester
    {
        enum Conditions
        {
            big, multiply, even, odd,
        };
        public void Run()
        {
            while (true)
            {
                string msg;
                Console.Write("数値を入力: ");
                string str = Console.ReadLine();
                if (str == "")
                {
                    break;
                }
                int n = Convert.ToInt32(str);
                Conditions c = n >= 100 ? Conditions.big :
                    n % 10 == 0 ? Conditions.multiply :
                    n % 2 == 0 ? Conditions.even :
                    Conditions.odd;
                switch (c)
                {
                    case Conditions.big:
                        msg = "大きすぎる値";
                        break;
                    case Conditions.multiply:
                        msg = "10の倍数";
                        break;
                    case Conditions.even:
                        msg = "偶数";
                        break;
                    case Conditions.odd:
                        msg = "奇数";
                        break;
                    default:
                        msg = "?";
                        break;
                }
                Console.WriteLine(msg);
            }
        }
        static void Main()
        {
            Tester t = new Tester();
            t.Run();
        }
    }
}

入出力結果(Console Window)

数値を入力: 100
大きすぎる値
数値を入力: 99
奇数
数値を入力: 98
偶数
数値を入力: 90
10の倍数
数値を入力: 5
奇数
数値を入力: 4
偶数
数値を入力: 3
奇数
数値を入力: 2
偶数
数値を入力: 1
奇数
数値を入力:
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿