開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 9章(自作メソッドの書き方), 9.5(練習問題)ask メソッドの改良 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
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 puts 'こんにちは。お忙しいところ・・・・・・' puts ask 'タコスはお好きですか?' ask 'ブリトーはお好きですか?' wets_bed = ask 'お漏らししますか?' ask 'チミチャンガはお好きですか?' ask 'ソパピアはお好きですか?' puts 'あと少しです・・・・・・' ask 'オルチャータは好きですか?' ask 'フラウタスは好きですか?' puts puts 'デブリーフィング:' puts 'この実験のために・・・・・・' puts puts wets_bed
入出力結果(Terminal)
$ ./sample.rb こんにちは。お忙しいところ・・・・・・ タコスはお好きですか? はい ブリトーはお好きですか? はい お漏らししますか? まさか 「はい」または「いいえ」でお答え下さい。 お漏らししますか? いいえ チミチャンガはお好きですか? はい ソパピアはお好きですか? はい あと少しです・・・・・・ オルチャータは好きですか? はい フラウタスは好きですか? はい デブリーフィング: この実験のために・・・・・・ false $
ちなみにJavaScriptの場合。
コード(BBEdit)
function ask( question ) { $('#pre0').append(question + "\n"); var reply; while(true){ reply = prompt(question,""); $('#pre0').append(reply + "\n"); switch ( reply ) { case "はい": return true; case "いいえ": return false; default: alert("「はい」または「いいえ」でお答え下さい"); } } } $('#pre0').append("こんにちは。お忙しところ・・・・・・\n\n"); ask("タコスはお好きですか?"); ask("ブリトーはお好きですか?"); var wets_bed = ask("お漏らししますか?"); ask("チミチャンガはお好きですか?"); ask("ソパピアはお好きですか?"); $('#pre0').append('あと少しです・・・・・・\n'); ask("オルチャータは好きですか?"); ask("フラウタスは好きですか?"); $('#pre0').append("\nデブリーフィング:\n"); $('#pre0').append('この実験のために・・・・・・\n\n'); $('#pre0').append(wets_bed + "\n");
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("こんにちは。お忙しいところ・・・・・・") print() ask("タコスはお好きですか?") ask("ブリトーはお好きですか?") wets_bed = ask("お漏らししますか?") ask("チミチャンガはお好きですか?") ask("ソパピアはお好きですか?") print("あと少しです・・・・・・") ask("オルチャータは好きですか?") ask("フラウタスは好きですか?") print() print("デブリーフィング:") print("この実験のために・・・・・・") print() print(wets_bed)
入出力結果(Terminal)
$ ./sample.py こんにちは。お忙しいところ・・・・・・ タコスはお好きですか?はい ブリトーはお好きですか?はい お漏らししますか?まさか 「はい」または「いいえ」でお答え下さい」 お漏らししますか?いいえ チミチャンガはお好きですか?はい ソパピアはお好きですか?はい あと少しです・・・・・・ オルチャータは好きですか?はい フラウタスは好きですか?はい デブリーフィング: この実験のために・・・・・・ 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; print $question . "\n"; my $reply; while(1){ chomp($reply = <STDIN>); given( $reply ) { when( "はい" ){ return 1;} when( 'いいえ' ) {return 0;} print "「はい」または「いいえ」でお答え下さい。\n"; } } } print "こんにちは。お忙しところ・・・・・・\n\n"; ask("タコスはお好きですか?"); ask("ブリトーはお好きですか?"); my $wets_bed = ask("お漏らししますか?"); ask("チミチャンガはお好きですか?"); ask("ソパピアはお好きですか?"); print "あと少しです・・・・・・\n"; ask("オルチャータは好きですか?"); ask("フラウタスは好きですか?"); print "\nデブリーフィング:\n"; print "この実験のために・・・・・・\n\n"; print $wets_bed . "\n";
入出力結果(Terminal)
$ ./sample.pl こんにちは。お忙しところ・・・・・・ タコスはお好きですか? はい ブリトーはお好きですか? はい お漏らししますか? まさか 「はい」または「いいえ」でお答え下さい。 いいえ チミチャンガはお好きですか? はい ソパピアはお好きですか? はい あと少しです・・・・・・ オルチャータは好きですか? はい フラウタスは好きですか? はい デブリーフィング: この実験のために・・・・・・ 0 $
0 コメント:
コメントを投稿