ある条件のときだけ処理を行いたい場合は if
文を使う.
if 条件式 then 条件式が成立した場合の処理内容 end
条件によって処理を変えたい場合は if ... else
文を使う.
if 条件式 then 条件式が成立した場合の処理内容 else 条件式が成立しなかった場合の処理内容 end
さらに条件によって処理を変えたい場合は if ... elsif ... else
文を使う.なお,elsif
は必要に応じて複数指定できる.
if 条件式1 then 条件式1が成立した場合の処理内容 elsif 条件式2 then 条件式1が成立せず条件式2が成立した場合の処理内容 else どの条件式も成立しなかった場合の処理内容 end
なお,条件式の中では次の関係演算子(比較演算子とも呼ぶ)が使われる.特に「等しい」を意味する演算子は =
ではなく ==
であることに注意すること.
演算子 | 記述例 | 意味 |
---|---|---|
== | a == b | a と b が等しい |
!= | a != b | a と b が等しくない |
> | a > b | a が b より大きい |
>= | a >= b | a が b 以上である |
< | a < b | a が b 未満である |
<= | a <= b | a が b 以下である |
また,Rubyに限らず多くのプログラミング言語では,条件分岐や繰り返し処理のプログラムを記述する際にインデント(字下げ)を行って,まとまりを見やすくすべきである.インデントはスペースを複数入力したり,タブを入力したりする方法がある.どちらが良いかは長年の論争になっているようである.高機能なテキストエディタではキーボードでタブキーを押したときにスペースを2個(あるいは4個)入力するように設定を変更することができる.秀丸エディタでは「その他」メニューの「ファイルタイプ別の設定」から「体裁」,「タブ」の中に「タブキーで空白入力」という設定項目があり,Atomテキストエディタでは「ソフトタブ」と呼ばれる設定がある.2017年6月20日には『「スペース派」の開発者は「タブ派」より高給取りになる』という記事も発表された.
Rubyに関しては正式なコーディング規約は存在しないようである.いくつかの団体/個人が公表しているコーディング規約は参考になる.
では,得点を指定すれば合否判定結果を表示するようなプログラムをいくつか作成してみよう.
if1.rb
# 合否判定
x = 70
if x >= 60 then
puts "合格"
end
合格
if2.rb
# 合否判定
x = 50
if x >= 60 then
puts "合格"
else
puts "不合格"
end
不合格
if3.rb
# 合否判定
x = 70
if x >= 90 then
puts "S : 合格"
elsif x >= 80 then
puts "A : 合格"
elsif x >= 70 then
puts "B : 合格"
elsif x >= 60 then
puts "C : 合格"
else
puts "不合格"
end
B : 合格