2013年2月28日木曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 9章(自作メソッドの書き方), 9.5(練習問題)ask メソッドの改良 を解いてみる。

その他参考書籍

ask メソッドの改良

コード(BBEdit)

sample.rb

#!/usr/bin/env ruby1.9
#-*- coding: utf-8 -*-

def ask question
    while true
        puts question
        reply = gets.chomp.downcase
        return true if reply == 'はい'
        return false if reply == 'いいえ'
        puts "「はい」または「いいえ」でお答え下さい"
    end
end

result1 = ask "a"
result2 = ask "b"
puts result1
puts result2

入出力結果(Terminal)

$ ./sample.rb
a
はい
b
いい
「はい」または「いいえ」でお答え下さい
b
いいえ
true
false
$

ちなみにJavaScriptの場合。

コード(BBEdit)

function ask( question ) {
    var result;
    while (true) {
        var reply = prompt(question);
        if (reply === "はい") {
            return true;
        }
        if (reply === "いいえ") {
            return false;
        }
        alert("「はい」または「いいえ」でお答え下さい");
    }
}
var result = ask("a") + "\n";
result += ask("b");
$('#pre0').text(result);


pythonの場合。

sample.py

コード(BBEdit)

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

def ask(question):
    while True:
        reply = input(question)
        if reply == "はい":
            return True
        if reply == "いいえ":
            return False
        print("「はい」または「いいえ」でお答え下さい。")

print("{0}, {1}".format(ask("a"), ask("b")))

入出力結果(Terminal)

$ ./sample.py
aはい
bいい
「はい」または「いいえ」でお答え下さい。
bいいえ
True, False
$

perlの場合。

sample.pl

コード(BBEdit)

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

sub ask {
    my $question = shift;
    while (1) {
        print "$question: ";
        chomp(my $reply = <STDIN>);
        return 1 if $reply eq "はい";
        return 0 if $reply eq "いいえ";
        print "「はい」または「いいえ」でお答え下さい。\n";
    }
}
print ask("a"), ", ", ask("b"), "\n";

入出力結果(Terminal)

$ ./sample.pl
a: はい
b: いい
「はい」または「いいえ」でお答え下さい。
b: いいえ
1, 0
$

0 コメント:

コメントを投稿