オーダーメイドコース
icon
icon

まず最初に覚えておきたい!Rubyの条件分岐(if文)を使う方法【初心者向け】

Rubyで書くif文(条件分岐)について初心者でも分かるように解説しています。else if文、unless文なども紹介。プログラミングをやる上でif文の知識は欠かせないので、ぜひ覚えて使えるようにしておきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

mentor-hakamata

新卒入社した会社がブラックな環境で自己研鑽の時間も作れず、これではだめだと思い転職。2度の転職を経て現在3社目。まだまだ挑戦中。
C#, Ruby, Python, JavaScriptなど経験。

Rubyで書くif文について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

if文を使うことで条件に応じて処理を変えることができるので、ぜひ覚えておきましょう。

目次

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今日はif文の書き方を練習しよう。

大石ゆかり

田島メンター!!if文は何をするんですか~?

田島悠介

if文は条件分岐を行うものだよ。ある特定の条件に当てはまる場合はAの処理、違った場合はBの処理を行うという風に処理を分岐できるんだ。実際にどういう形になるか見てみよう。

大石ゆかり

はい!お願いします!

 

if文の書き方

if文は条件式の真偽によって処理を分岐させる制御構造のひとつです。基本構文は以下のようになります。

if 条件式1 then
  puts "do something 1"
elsif 条件式2 then
  puts "do something 2"
else
  puts "do something 3"
end

 

ifの条件式(上記条件式1)が「真」である場合にthen以下(puts “do something 1″)が実行されます。

条件式1が「偽」である場合はelsifの条件式2が評価され、これが「真」であればthen以下(puts “do something 2″)が実行されます。elsifは複数指定可能です。

ifおよびすべてのelsifの条件式が「偽」だった場合、elseが存在すれば、それ以下(puts “do something 3″)が実行されます。

Rubyにおいて「偽」とはfalseかnilだけで、他は0や空文字列も含めてすべて「真」となります。

 

田島悠介

最初の条件式で真であればそこで指定された処理が実行される。そこで偽であって次のelseifの条件で真であればそこの処理が、さらにそこでも偽であれば……というように判定されるんだ。

大石ゆかり

最終的にどれにも当てはまらなかった場合は、elseの処理が実行されるんですね。

田島悠介

その通り!では実際に書いてみよう。

 

 

実際にif文を書いてみよう

if文の例を以下に示します。

a = 5
if a > 3 then
  puts "a is greater than 3"
end

ruby-if-expression01-620x214
1行目で変数「a」に「5」を代入しています。

2行目のifで「a > 3」という条件式が実行されます。この条件式は「真」なのでthen以下が実行され「a is greater than 3」が出力されます。

続いて、1行目を「a = 1」に変更してみます。

a = 1
if a > 3 then
  puts "a is greater than 3"
end

ruby-if-expression02-620x200
この場合、条件式が「偽」となるのでthen以下は実行されず、nilとなります。

 

[PR] 未経験からWebエンジニアを目指す方法とは

複数の条件で分岐させる

elsifとelseを使って複数の条件で処理を分岐させてみましょう。

a = 15
if a > 30 then
  puts "a is greater than 30"
elsif a > 20 then
  puts "a is greater than 20"
elsif a > 10 then
  puts "a is greater than 10"
else
  puts "a is less than 10"
end

ruby-if-expression03-620x293

1行目で変数「a」に「15」を代入しています。

ifの条件式「a > 30」は「偽」なので最初のthen以下は実行されず、次のelsifに進みます。

ひとつ目のelsifの「a > 20」も「偽」なので次のelsifに進み、ここで「a > 10」が「真」となりthen以下の「a is greater than 10」が出力されます。最後のelse以下は評価されません。

次は文字列の比較を条件式としてみます。

a = "ruby"
if a == "python"
  puts "a is python"
elsif a == "java"
  puts "a is java"
else
  puts "a is ruby"
end

ruby-if-expression04-620x267

1行目で変数「a」に「ruby」という文字列を代入しました。
この場合、if/elsifの条件式は「偽」となり、else以下が実行され「a is ruby」が出力されます。

unless文

unless文はif文とは逆の働きを持つ制御構造です。

unless 条件式 then
  # do something 1
else
  # do something 2
end

条件式が「偽」である場合にthen以下、「真」である場合は(存在すれば)else以下を実行します。

ただし、unlessにelsifは指定できないことに注意してください。

a = 3
unless a > 5 then
  puts "a is less than 5"
else
  puts "a is greater than 5"
end

ruby-if-expression05-620x240

1行目で変数「a」に「3」を代入しています。

2行目のunlessで条件式「a > 5」が実行されます。これは「偽」なので、then以下が実行され「a is less than 5」が出力されます。

続いて、1行目を「a = 10」に変更しました。

a = 10
unless a > 5 then
  puts "a is less than 5"
else
  puts "a is greater than 5"
end

ruby-if-expression06-620x240

この場合は条件式「a > 5」が「真」なのでthen以下は実行されません。else以下が実行され「a is greater than 5」が出力されます。
以上、Rubyで書く条件分岐(if文)について解説しました。

 

田島悠介

最後にunless文についても少し紹介したよ。

大石ゆかり

if文とは逆のことをするんですね。

田島悠介

条件分岐もfor文と同様よく使う構文なので、すぐに書けるように頭にしっかり入れておこう。

大石ゆかり

分かりました。ありがとうございます!

 

Ruby on Railsを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのWebアプリケーションコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、Ruby on Railsを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!