開発環境
- 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 コメント:
コメントを投稿