Rubyを学んでみる 第4回

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

if文

name = 'maro'
if name == 'まろ'
	text = 'Hello, まろ!'
elsif name == 'maro'
	text = 'Hello, maro!'
elsif name == 'pico'
	text = 'Hello, pico'
else
	text = 'Hello!'
end

おいいいいいいいいいいいいい「elsif」ってなんだよ・・・。
なんでこんな仕様にしたんだよ・・・。
「else」はそのままなのに・・・。

case文

case文??switchじゃないのか・・・言い方の問題か?

name = 'maro'
case
when name == 'まろ'
	text = 'Hello, まろ!'
when name == 'maro'
	text = 'Hello, maro!'
when name == 'pico'
	text = 'Hello, pico'
else
	text = 'Hello!'
end

全然違ったあああああああああああああ
条件分岐で他言語と違うのって珍しいわ。

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

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

name = 'maro'
case name
when 'まろ'
	text = 'Hello, まろ!'
when 'maro'
	text = 'Hello, maro!'
when 'pico'
	text = 'Hello, pico'
else
	text = 'Hello!'
end

おっ。いいじゃん。switchっぽいじゃん。
これこれ。これのほうが使いやすい。

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

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

unless

hour = 9
unless hour >12
	text = 'Good Mornig!' #実行される
end

む。
これは。
ifとは逆で条件が成立しないときだけ内容を実行します。と。
これって他言語にあったかなあ。
elsifは使えないそうだ。
まあ使いたいときはif文使えと。

if修飾子とunless修飾子

hour = 9
text = 'Good Morning!' if hour < 12 #実行される
text = 'Good Morning!' unless hour > 12 #実行される

式の後に修飾子・・・。これは特殊だなあ。
これで実行できるのか。
ちょっとややこしい。
慣れれば非常に楽そうなんだけどな。

三項演算子

name = 'maro'
text = name == 'maro' ? 'Hello, maro!' : 'Hello'

これは理解した。
いつもと同じやつだわ。

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

OH…なんとなく予想はつくが。

lists = ['Maro','まろ','Pico']
for name in lists
	puts 'Hello, ' + name
end

はいー予想からかけ離れておりましたー。
全然for文っぽくない・・・・。いや、言ってることはわかるんだけど。

names = ['Maro','まろ','Pico']
for each do |names|
	puts 'Hello, ' + name
end

これは恐ろしい。|なんとか|っていうのがとっつきにくすぎる。
まあ、eachメソッド自体始めて見るから仕方ないようなことだけど。

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

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください