開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- 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 メソッドの改良
コード(TextWrangler)
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の場合。
コード(TextWrangler)
function ask(question){
$('#pre0').append(question + "\n");
while(1){
var reply = prompt(question, "");
$('#pre0').append(reply + "\n");
if(reply === "はい") return true
if(reply === "いいえ") return false;
if(/^\s*$/.test(reply)) return "終了";
alert("「はい」または「いいえ」でお答え下さい。");
}
}
var question = $('#t0').val();
var result = ask(question);
$('#pre0').append(result + "\n");
pythonの場合。
sample.py
コード(TextWrangler)
#!/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
コード(TextWrangler)
#!/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\n";
chomp(my $reply = <STDIN>);
return 1 if $reply eq "はい";
return 0 if $reply eq "いいえ";
print "「はい」または「いいえ」でお答え下さい。\n";
}
}
print "こんにちは。お忙しところ・・・・・・\n";
print "\n";
ask "タコスはお好きですか?";
ask "ブリトーはお好きですか?";
my $wets_bed = ask "お漏らししますか?";
ask "チミチャンガはお好きですか?";
ask "ソパピアはお好きですか?";
print "あと少しです・・・・・・\n";
ask "オルチャータは好きですか?";
ask "フラウタスは好きですか?";
print "\n";
print "デブリーフィング:\n";
print "この実験のために・・・・・・\n";
print "\n";
print "$wets_bed\n";
入出力結果(Terminal)
$ ./sample.pl こんにちは。お忙しところ・・・・・・ タコスはお好きですか? はい ブリトーはお好きですか? はい お漏らししますか? まさか 「はい」または「いいえ」でお答え下さい。 お漏らししますか? いいえ チミチャンガはお好きですか? はい ソパピアはお好きですか? はい あと少しです・・・・・・ オルチャータは好きですか? はい フラウタスは好きですか? はい デブリーフィング: この実験のために・・・・・・ 0 $
0 コメント:
コメントを投稿