2013年2月9日土曜日

開発環境

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

その他参考書籍

練習5-2.

コード

using System;

class Tester
{
    enum Condition
    {
        Big, Multiply, Even, Odd,
    }
    public void Run()
    {
        while (true)
        {
            int n = 0;

            string s = Console.ReadLine();
            if (s == "")
            {
                break;
            }
            try
            {
                n = Convert.ToInt16(s);
                Console.WriteLine("ifステートメントによる判定");
                if (n >= 100)
                {
                    Console.WriteLine("大きすぎる値(100以上");
                }
                else if (n % 2 == 0)
                {
                    Console.WriteLine("10の倍数");
                }
                else if (n % 2 == 0)
                {
                    Console.WriteLine("偶数");
                }
                else if (n % 2 == 1)
                {
                    Console.WriteLine("奇数");
                }
                else
                {
                    Console.WriteLine("?");
                }
                Console.WriteLine("switchステートメントによる判定");
                Condition condition = n >= 100 ? Condition.Big :
                    n % 10 == 0 ? Condition.Multiply :
                    n % 2 == 0 ? Condition.Even :
                    Condition.Odd;
                switch (condition)
                {
                    case Condition.Big:
                        Console.WriteLine("大きすぎる値");
                        break;
                    case Condition.Multiply:
                        Console.WriteLine("10の倍数");
                        break;
                    case Condition.Even:
                        Console.WriteLine("偶数");
                        break;
                    case Condition.Odd:
                        Console.WriteLine("奇数");
                        break;
                    default:
                        break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

c#
入力文字列の形式が正しくありません。
100
ifステートメントによる判定
大きすぎる値(100以上
switchステートメントによる判定
大きすぎる値
200
ifステートメントによる判定
大きすぎる値(100以上
switchステートメントによる判定
大きすぎる値
90
ifステートメントによる判定
10の倍数
switchステートメントによる判定
10の倍数
80
ifステートメントによる判定
10の倍数
switchステートメントによる判定
10の倍数
78
ifステートメントによる判定
10の倍数
switchステートメントによる判定
偶数
76
ifステートメントによる判定
10の倍数
switchステートメントによる判定
偶数
75
ifステートメントによる判定
奇数
switchステートメントによる判定
奇数
73
ifステートメントによる判定
奇数
switchステートメントによる判定
奇数

続行するには何かキーを押してください . . .

ちなみにJavaScriptの場合。

コード(BBEdit)

var n = parseInt($('#t0').val(), 10),
    result = "if ステートメントによる判定\n",
    condition;
    if ( n >= 100 ) {
        result += "大きすぎる値(100以上)";
    } else if ( n % 10 === 0 ) {
        result += "10の倍数";
    } else if ( n % 2 === 0 ) {
        result += "偶数";
    } else if ( n % 2 === 1 ) {
        result += "奇数";
    } else {
        result += "?";
    }
result += "\nswitchステートメントによる判定\n";
condition = n >= 100 ? "big" : n % 10 === 0 ? "multiply" : n % 2 === 0 ? "even" :
    n % 2 === 1 ? "odd": "?";
switch ( condition ) {
    case "big":
        result += "大きすぎる値";
        break;
    
    case "multiply":
        result += "10の倍数";
        break;
    case "even":
        result += "偶数";
        break;
    case "odd":
        result += "奇数";
        break;
    default:
        result += "?";
}
$('#pre0').text(result);





pythonの場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

while True:
    n = input()
    if n == "":
        break
    n = int(n)
    if n >= 100:
        print("大きすぎる値")
    elif n % 10 == 0:
        print("10の倍数")
    elif n % 2 == 0:
        print("偶数")
    elif n % 2 == 1:
        print("奇数")
    else:
        print("?")
    conditions = {"big": "大きすぎる値", "multiply": "10の倍数", "even": "偶数", 
        "odd":"奇数", "?": "?"}
    condition = "big" if n >= 100 else "multiply" if n % 10 == 0 else "even" \
        if n % 2 == 0 else "odd" if n % 2 == 1 else "?"
    print(conditions[condition])

入出力結果(Terminal)

$ ./sample.py
100
大きすぎる値
大きすぎる値
200
大きすぎる値
大きすぎる値
90
10の倍数
10の倍数
80
10の倍数
10の倍数
79
奇数
奇数
78
偶数
偶数
77
奇数
奇数
76
偶数
偶数

$

0 コメント:

コメントを投稿