そうすると頭の中が日中の仕事のことでいっぱいになって、眠ろうにも眠れない。
ぼーっとしてるといつの間にか仕事のことを考えている。
これじゃいかん!
というわけで気持ちを切り替えるために仕事とは全く関係の無いCordingをすることにした。
題材はRuby。
で、早速今日からスタートし、とりあえずFizzBuzzを書いた。
# RubyでFizzBuzzをかいてみよう!
# 3の倍数でFizz 5の倍数でBuzz 15の倍数でFizzBuzzね
for num1 in 1 .. 55 do
if num1 % 15 == 0 then
print(num1)
print(" ")
puts("FizzBuzz")
end
if num1 % 5 == 0 then
print(num1)
print(" ")
puts("Buzz")
end
if num1 % 3 == 0 then
print(num1)
print(" ")
puts("Fizz")
end
end
こんな感じ。
今までやってきた言語(といっても数少ないw)だと「else if」で条件をさらに指定できていたのだけど、そういうふうにはかけなかった。
endが足りないよ!って怒られるのだ。
まだ始めたばかりでよくわかっていないけど、条件文1つずつに対してendが必要?
・・・そんな感じで仕事のことを忘れてちょっと没頭できるので楽しい。
とりあえず、何か動くものを作るのを目標に、ちょいちょいやっていこうかなと思う。
やっぱりCordingは楽しいのだ。
2012.06.21 追記
else ifとelsifは別物、というわけで理解したことをベースにもう一度FizzBuzzを書いてみた。
#コメントくださった匿名さん、ありがとうございます!
# 2012.06.21 FizzBuzzをElse if 的な構文で書いてみよう
# Else if を書きたければ elsifを使う?!
for num1 in 1 .. 100 do
if num1 % 15 == 0 then
print(num1)
print(" ")
puts("FizzBuzz")
elsif num1 % 5 == 0 then
print(num1)
print(" ")
puts("Buzz")
elsif num1 % 3 == 0 then
print(num1)
print(" ")
puts("Fizz")
end
end
--実行結果--
AnriMBA:RubyRoom Anri$ ruby Elseif.rb
3 Fizz
5 Buzz
6 Fizz
9 Fizz
10 Buzz
12 Fizz
15 FizzBuzz
18 Fizz
20 Buzz
21 Fizz
24 Fizz
25 Buzz
27 Fizz
30 FizzBuzz
(中略)
96 Fizz
99 Fizz
100 Buzz
というわけで、思っていた通りに記述することができ、思った通りの結果を得ることができた。
同じFizzBuzzでも、言語によって微妙に違いがあるのだなぁと再認識。
そしてそれを再認識させてくれるFizzBuzzはよいプラクティスだなと改めて思った。
明日もなんか書きたいな〜☆
Rubyは elsif というキーワードを使います。
返信削除else if としちゃうと、Cっぽく書くと
if (...) {
}
else {
if (..) {
}
}
のようなことになるので、余計な end がいるように
見えるんですね。
コメントありがとうございます。
返信削除よーく見ると、「Else if」ではなくて「Elsif」なんですね。
そしてelse ifの謎も解けました。
予約後としては「else」と「if」という認識のされ方で、なのでelseはelseで、ifはifで、それぞれに対応するendが必要だと解釈されてしまう、ということですよね。