LoginSignup
0
0

More than 1 year has passed since last update.

Ruby if文, unless文についてまとめました2

Posted at

こちらの続きとして書きます。

条件分岐処理

ifからunlessに書き換える例を3つ挙げてみました。

ifからunlessに書き換える例1

if 100 == 10
  puts "同じ数字です"
else
  puts "違う数字です"
end

上記if文をunless文で書き換えると次のようになります。

unless 100 == 10
  puts "違う数字です"
else
  puts "同じ数字です"
end

ifからunlessに書き換える例2

if 100 + 10 > 0
  puts "0より大きい数字です"
else
  puts "0より小さい数字です"
end

上記if文をunless文で書き換えると次のようになります。

unless 100 + 10 <= 0
  puts "0より大きい数字です"
else
  puts "0より小さい数字です"
end

ifからunlessに書き換える例3

if a + b > 0
  puts "計算結果は0より大きいです"
end

上記if文をunless文で書き換えると次のようになります。

unless a + b <= 0
  puts "計算結果は0より大きいです"
end

「a + b が0より大きい」という条件がfalseだった場合、「計算結果は0より大きいです」と文字列が表示されます。
つまり、「a + b が0より大きくないとき」に文字列が表示されるということです。
では、下記のように書くと、a + bの計算結果が0だった場合どうなるでしょう?

unless a + b < 0
  puts "計算結果は0より大きいです"
end

これは、「a + b が0より小さい」という条件式がfalseのとき、文字列が表示されます。
つまり「a + b が0より小さくないとき」に文字列が表示されます。
a + bが0だった場合でも、「a + b が0より小さい」という条件式がfalseとなってしまい、文字列が表示されます。
a + bが0以上のときにfalseになる条件式に変更しないといけません。
そのため、 <= を使用します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0