delalunaofficedaysのブログ

WORDPRESSとEC CUBEくらいしか触っていないWEBデザイナーの日記とかメモ。

Rubyを学んでみる 第4回

さてさて、何となく文法を理解してきたところで定番の条件分岐行きますか。 基本的にはrubyもそこまで変わらない模様。

if文

[ruby] name = ‘maro’ if name == ‘まろ’ text = ‘Hello, まろ!’ elsif name == ‘maro’ text = ‘Hello, maro!’ elsif name == ‘pico’ text = ‘Hello, pico’ else text = ‘Hello!’ end [/ruby] おいいいいいいいいいいいいい「elsif」ってなんだよ・・・。 なんでこんな仕様にしたんだよ・・・。 「else」はそのままなのに・・・。

case文

case文??switchじゃないのか・・・言い方の問題か? [ruby] name = ‘maro’ case when name == ‘まろ’ text = ‘Hello, まろ!’ when name == ‘maro’ text = ‘Hello, maro!’ when name == ‘pico’ text = ‘Hello, pico’ else text = ‘Hello!’ end [/ruby] 全然違ったあああああああああああああ 条件分岐で他言語と違うのって珍しいわ。

case文でも条件によって処理内容を分岐することができます。 whenの後に条件分岐を記述し、その後に処理内容を記述します。 なるほど・・・

受験の評価対象が共通の場合は次のように記述することが出来る。

[ruby] name = ‘maro’ case name when ‘まろ’ text = ‘Hello, まろ!’ when ‘maro’ text = ‘Hello, maro!’ when ‘pico’ text = ‘Hello, pico’ else text = ‘Hello!’ end [/ruby] おっ。いいじゃん。switchっぽいじゃん。 これこれ。これのほうが使いやすい。

whenとcase混同しそうになるけど。 case ‘maro'とか書きそうになるけど。

「case 評価対象」ってのが慣れないけどまあこういう仕様ってことで。

unless

[ruby] hour = 9 unless hour >12 text = ‘Good Mornig!’ #実行される end [/ruby] む。 これは。 ifとは逆で条件が成立しないときだけ内容を実行します。と。 これって他言語にあったかなあ。 elsifは使えないそうだ。 まあ使いたいときはif文使えと。

if修飾子とunless修飾子

[ruby] hour = 9 text = ‘Good Morning!’ if hour < 12 #実行される text = ‘Good Morning!’ unless hour > 12 #実行される [/ruby] 式の後に修飾子・・・。これは特殊だなあ。 これで実行できるのか。 ちょっとややこしい。 慣れれば非常に楽そうなんだけどな。

三項演算子

[ruby] name = ‘maro’ text = name == ‘maro’ ? ‘Hello, maro!’ : ‘Hello’ [/ruby] これは理解した。 いつもと同じやつだわ。

forもしくはeachメソッドで繰り返し

OH…なんとなく予想はつくが。 [ruby] lists = [‘Maro’,‘まろ’,‘Pico’] for name in lists puts ‘Hello, ’ + name end [/ruby]

はいー予想からかけ離れておりましたー。 全然for文っぽくない・・・・。いや、言ってることはわかるんだけど。 [ruby] names = [‘Maro’,‘まろ’,‘Pico’] for each do |names| puts ‘Hello, ’ + name end [/ruby] これは恐ろしい。|なんとか|っていうのがとっつきにくすぎる。 まあ、eachメソッド自体始めて見るから仕方ないようなことだけど。

なんかRubyに於いてはeachメソッドのほうがよく使うらしい。