開発環境
- Microsoft Windows 8 Pro 64bit 日本語 (OS)
- Microsoft Visual Studio Express 2012 for Windows Desktop (IDE)
- プログラミング言語: C#
『初めての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 コメント:
コメントを投稿