Help us understand the problem. What is going on with this article?

Rubyの基本記述の仕方〜その11〜 if文とunless文

More than 1 year has passed since last update.

unless文に初めて触れたので、if文との違いをまとめようと思います。

if文

sample.rb
if 条件式
 条件式が真である時の処理
else
 条件式が偽である時の処理
end

記述した条件を満たしているか否かで処理を変えることができます。

<記述例>

sample.rb
if age >= 20
 puts "成人しています"
else
 puts "未成年です"
end

unless文

sample.rb
unless 条件式
 条件式が偽である時の処理
else
 条件式が真である時の処理
end

if文と同じ構造で記述できますが、真偽の判定が逆転します。
また、if文と違いelseifを使って条件式を複数記述することができません。

<記述例>

sample.rb
unless age >= 20
 puts "未成年です"
else
 puts "成人しています"

unless文の実用例

条件式自体が何かの処理を含んでいる場合、unlessにすると、
その処理が失敗した場合の記述だけで済むので便利です。

<記述例>

sample.rb
unless @user.save
 render(user/edit)
end

@user.saveの処理が失敗した時のみ該当のページを表示させる処理が書けました。
ちなみにif文で同じ内容を記述した場合elseが必要になります。

sample.rb
if @user.save
else
 render(user/edit)
end

当初、if @user.saveの記述で「もし、ユーザーの保存が成功すれば」という意味に受け取れず
条件式と処理が同じ箇所で書かれている所に非常に違和感がありました。
しかし、慣れてくると書く量が少なくて済むのでとても便利です。

今日はこのあたりで失礼します。

参考サイト

Let's プログラミング初心者の方でも分かりやすいサイト unless文
https://www.google.co.jp/search?ei=AXbWW6bcM4vqwQO945f4Dg&q=elseif&oq=elseif&gs_l=psy-ab.3..0i67k1j0l7.2207.5133.0.5291.12.9.0.3.3.0.105.664.7j1.9.0....0...1c.1.64.psy-ab..0.11.670.0..0i5i10i30k1j0i10k1j0i131k1j0i4k1.71.ein1xWrORFA

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした