roy > naoya > 基礎プログラミングI·情報検索 > (3)演算子・制御構造[1] > 補足
if文の場合はifの横に書く条件を満たす場合に処理を実行するが、unless文では横に書く条件を満たさない場合に処理を実行する。unless文はif文で書くことができる(ので無理に覚えなくて良い)。
#!/usr/koeki/bin/ruby print"1〜100の間で好きな数字を入力してください\n" a = gets.chomp!.to_i print"もう1回1〜100の間で好きな数字を入力してください\n" b = gets.chomp!.to_i unless a > b #=>a > bでない場合は print"最初の方が2回目より大きくないわね\n" else #=>そうでない場合、すなわちa > bである場合は print"最初の方が2回目より大きいわね\n" end
参考までにこのプログラムをif文を使って書きなおすと以下のようになる(条件の不等号の向きが変わる)。
#!/usr/koeki/bin/ruby print"1〜100の間で好きな数字を入力してください\n" a = gets.chomp!.to_i print"もう1回1〜100の間で好きな数字を入力してください\n" b = gets.chomp!.to_i unless a < b print"最初の方が2回目より大きくないわね\n" else print"最初の方が2回目より大きいわね\n" end
unless文で紹介したサンプルプログラムのように比較したい変数が2つではなく、1つであり、その値によって場合わけを行う場合、case文を使用することができる。case文ではなくif文やunless文でももちろん記述できるが、場合わけを行う上で条件が多い場合にはcase文を用いた方が簡単に書ける場合が多い。
#!/usr/koeki/bin/ruby print"1から10の好きな数字を入力してください\n" a = gets.chomp!.to_i case a when 1, 2, 3 print"small\n" when 4, 5, 6 print"medium\n" when 7, 8, 9, 10 print"big\n" else print"範囲を超えました\n" end
このプログラムではaが1〜3の場合に「small」、4〜6の場合に「medium」、7〜10の場合に「big」とそれぞれ表示される。
上記の例ではwhenを3つ使って条件を記述しているが、条件の数が増えた場合whenを無制限に増やすことができる。