2009年12月19日土曜日

複数の条件によって処理する同様の処理を、if…else if文とswitch文のそれぞれで記述して比較してみる。


if…else if文の場合


using System;


class MainClass
{
    static void Main()
    {
        Console.Write("3桁以下の正の実数Rを入力>>a=");
        double a = Double.Parse(Console.ReadLine());


        if (a >= 1000)
        {
            Console.WriteLine("3桁を超えています");
        }
        else if (a >= 100)
        {
            Console.WriteLine(a / 100);
        }
        else if (a >= 10)
        {
            Console.WriteLine(a / 10);
        }
        else if (a > 0)
        {
            Console.WriteLine(a);
        }
        else
        {
            Console.WriteLine("0または負の数です");
        }
    }
}


処理をswitch文の場合


using System;


class MainClass
{
    static void Main()
    {
        Console.Write("3桁以下の正の実数Rを入力>>a=");
        double a = Double.Parse(Console.ReadLine());


        switch(true)
        {
            case a>=1000:Console.WriteLine("3桁を超えています");
                break;
            case a>=100:Console.WriteLine(a/100);
                break;
            case a>=10:Console.WriteLine(a/10);
                break;
            case a>0:Console.WriteLine(a);
                break;
            default:Console.WriteLine("0または負の数です");
                break;
        }
    }
}
    結果
    今の場合switchの方が若干短くて読みやすい気がする。
    (switch文の方は定数値が必要とエラーになりましたが、まだ定数値がよくわかっていなかったりします。なのでとりあえず動いたことでよしとしました。)

    0 コメント:

    コメントを投稿