0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

0
1
2

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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?