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文を使うことで条件に応じて処理を変えることができるので、ぜひ覚えておきましょう。

目次

1時間でできる無料体験!

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] Rubyのプログラミングで挫折しない学習方法を動画で公開中

複数の条件で分岐させる

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」が出力されます。

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

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アプリケーション開発を学べます。

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する