条件分岐の例
下記条件沿ってプログラムを書く。
- 条件1:10以下なら10以下の数字です
- 条件2:10より大きい数値なら10より大きい数字です
- 条件3:10以下でかつ0以下なら0以下の数字です
input = gets.to_i
if input <= 0
puts "0以下の数字です"
elsif input <= 10
puts "10以下の数字です"
else
puts "10より大きい数字です"
end
if文は先に書いた条件から判断していきます。
先に書いた条件に当てはまった場合、それより後に書いた条件に当てはまったとしても、条件の処理はスルーされてしまいます。
もし以下のように書くと、ターミナルではどのように出力されるか考えます。
if input <= 10
puts "10以下の数字です"
elsif input <= 0
puts "0以下の数字です"
end
上記条件で、10を入力すると、"10以下の数字です"と返ってきます。
上記条件で、0を入力すると、"10以下の数字です"と返ってきます。
上記条件で、−1を入力すると、"10以下の数字です"と返ってきます。
つまり、先にも書いたように、if文は先に書いた条件から判断していくため、elsifで書いた条件の処理はスルーされてしまいました。
このように、条件分岐では、どの条件から記述していくのか考える必要があります。