三項演算子の書き方と FizzBuzz
三項演算子?:の正しい書き方
プログラマの思索: 三項演算子?:の正しい書き方 経由)
条件演算子は、正しくは以下のように書く。

condition ? true-expression
: false-expression

(中略)

条件演算子には、以下の表記方法もある。この表記は、 switch文や else-if構文と同様に使える。

case1 ? expression1:
case2 ? expression2:
case3 ? expression3:
...
default-expression

 すごく分かりやすい三項演算子の書き方の説明。「プログラマの思索」さんのエントリでも触れられてるとおり、三項演算子は Lisp の if式 や cond式 に発想が近い気がするので、インデントもそれ(if式やcond式)に近くすると、読みやすくなると思う。

RubyでFizzBuzzかけたよ!+いろいろ考えてみた - バイオ研究者見習い生活 with IT
このような記述を見つけたので適用してみると

for i in 1..100  do
puts((i % 15 == 0) ? "FizzBuzz" :
(i % 3 == 0 ) ? "Fizz" :
(i % 5 == 0 ) ? "Buzz" :
i)
end

こうなろうか。

僕だったら、もうちょっとレイアウトを整えて、こうするかなぁ(あと、for は rubyっぽくないので、あんまり使いたくない)。
(1..100).each do |i|
puts i % 15 == 0 ? 'FizzBuzz' :
i % 3 == 0 ? 'Fizz' :
i % 5 == 0 ? 'Buzz' :
i
end


これ、もっと短くできる人居たら教えてくれませんか?
for i in 1..100 do puts(i%15==0?"FizzBuzz":i%3==0?"Fizz":i%5==0?"Buzz":i)end

僕はゴルファーじゃないんでよく分かんないですが、短く書こうとするとこんな感じ?(63バイト)
1.upto(100){|i|p i%15==0?:FizzBuzz:i%3==0?:Fizz:i%5==0?:Buzz:i}
シンボルのコロン(:)と三項演算子のコロンを、Rubyがちゃんと区別してくれるのが嬉しい。
[PR]
by fkmn | 2008-03-20 22:52 | IT
<< わーい、SICP 第3章終了したよー 【感想】パラダイス鎖国 忘れ... >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX