if
もしこの条件に一致(true)するならこの処理を行うと言う記述。条件分岐と呼ばれている。
一致しなければfalse
『
実際のWebサービスでは例えば「5000円以上の購入で送料無料」
「ある特定の商品にだけクーポンを利用可能にする」などといった場面で利用されている。
また、elseやelsifを組み合わせることにより、単一条件ではなく複数条件を使って処理を切り替えることも可能です。
例えば「5000円以上の購入で送料無料、3000円以上の購入で送料半額」といった場合には複数条件が用いられます。』
> 何々より大きい
< 何々より小さい
>= 何々以上
<= 何々以下
== 何々と等しい
!= 何々と等しくない
&& AND
|| OR
! NOT
基本的な書き方
if [条件式] then
処理内容
end
等しい 場合は==
site = "Porte Bonheur"
if site == "Porte Bonheur"
puts "このサイトはPorte Bonheurです"
end
等しくない 場合は!=
site = "Some other site"
if site != "Porte Bonheur"
puts "このサイトはPorte Bonheurではありません"
end
○○以上>=、以下<=
bloodorange = 510
if bloodorange >= 500
puts "ブラッドオレンジは500円以上です"
end
if bloodorange <= 500
puts "ブラッドオレンジは500円以下です"
end
↓ 実行結果
ブラッドオレンジは500円以上です
(bloodorange = 510 を490にすると、実行結果は「ブラッドオレンジは500円以下です」と表示)
else
if文において条件に合致しなかった場合に実行したい処理を記述
もしこの条件に一致する場合はこの処理を行い、そうでない場合はこの処理を行う
基本的な書き方
if [条件式]
条件式がtrueの場合の処理内容
else
条件式がfalseの場合の処理内容
end
site = "Some other site"
if site == "Porte Bonheur"
puts "このサイトはPorte Bonheurです"
puts "このサイトはPorte Bonheurではありません"
end
2つ以上の条件
tall = 180
if tall >= 170 && tall <= 190
puts "身長は170以上190以下です。"
end
#出力結果=>身長は170以上190以下です。
elsif
elsifを使用する事によって「もしこの条件に一致する場合」を複数設定する事も可能。
ifにおける条件式 及び elsifにおける条件式に当てはまらない場合に実行される。
ifとelseの間に挟む
(PHPなど他の言語では「else if」や「elseif」などの表記が使用されますが、Rubyでは「elsif」となるので注意)
if 条件式1 [then]
条件式1がtrueの場合の処理内容
elsif 条件式2 [then]
条件式2がtrueの場合の処理内容
else
条件式1,2に当てはまらない場合の処理内容
end
water = "60 degrees celsius"
deg = water.to_i
if deg < 40
puts "Cold."
elsif 40 <= deg && deg < 70
puts "Hot."
else
puts "Too hot!"
end
unless
条件式が正しくない場合
例:変数 sample が 5ではない場合 処理を実行する
unless sample == 5
処理内容
end
case
ある変数の値が●の場合」のような条件分岐が3つ以上続く場合
(処理、whenをカンマ区切りで記述することで複数の値を指定できる)
case文を使用する時は、「case 変数名」と書き、続けて「when」により分岐を行い、最後に「end」でしめる。
sample = 1
case sample
when 1
処理1
when 2
処理2
end