(ruby) rubyでは ifやcaseは if文 case文 ではなく if式 case式 である

rubyに関する記事一覧→ rubyのまとめ



だいたいの言語って ifって文ですよね?、でもrubyでは ifも式なんです、caseも式なんです


if式ってなんやねん!?
って感じですが、まぁ論より証拠

puts(
	if true then
		100
	end
)

を実行すると 100 と表示されます
つまり trueだった場合その中の処理が実行され
一番最後の処理の戻り値が if式の結果 として返ってくるのです


もちろん、else や elsif が加わった場合も同じです

puts(
	if false then
		100
	else
		200
	end
)

これなら 200になります


caseも同じく

val = 2
puts(
	case val
	when 1
		'a'
	when 2
		'b'
	when 3
		'c'
	else
		'z'
	end
)

val に 2 がセットされているので表示されるのは b になります


今回、if式とcase式を紹介しましたが、実は他にもrubyの制御構造は戻り値を持つものが多いのです

puts(
	(100 if true)
)

100 が表示される

puts(
	(false ? 100 : 200)
)

200 が表示される


puts(
        unless false
                100
        end
)

100 が表示される

c = 0
puts(
	while
		c += 1
		break(c) if (c > 10)
	end
)

11 が表示される



など、他にもまだまだ有ります、もし興味を持ったのなら
もっと詳しい内容 Rubyリファレンスマニュアル → 制御構造 を参照してください