出力方法-演習編

Problem1: メッセージをランダムに表示してみよう

アクセス毎に違うメッセージを表示する CGI を作成してみてください。html である必要はありません。いろいろ工夫してみてください。

⇒ ヒント

Hint

  1. 配列を使うと良いでしょう:a = ["にんじん","うさぎ"]とするなら、a[0]"にんじん"a[1]"うさぎ"
  2. 配列の要素の数は、aを配列とするとき、a.length
  3. 0から6までの整数をランダムに出すなら、rand(7)

⇒ 答え

Solution

おそらく最もシンプルな答えは、

#!/usr/local/bin/ruby -Ks
messe = ["こんにちは","ごはんですよ","ウサギぴょんぴょん"]
print <<HOGEHOGE
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS

HOGEHOGE
puts messe[rand(3)]

しかし、これでは、メッセージの種類を増やしたときに、rand(3) の 3 をメッセージの個数に合わせなければなりません。これを自動でやれれば完成。 配列の要素の数を数えるのは、.length だから、

#!/usr/local/bin/ruby -Ks
messe = ["こんにちは","ごはんですよ","ウサギぴょんぴょん"]
print <<HOGEHOGE
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS

HOGEHOGE
puts messe[rand(messe.length)]
さらに、メッセージを書きやすくする工夫もできます。
#!/usr/local/bin/ruby -Ks

messe = <<EOS
こんにちは
ごはんですよ
ウサギぴょんぴょん
EOS

messe = messe.split(/\n/)

print <<EOS
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS

EOS

puts messe[rand(messe.length)]

⇒ 次の問題に進む

以上です。

Last updated 21.Sep.2006 [ Home ] [ Up ] [ 質問メール ]
Copyright © 2005-2006 Shigeru Konno All Rights Reserved..