プロのカウンセラーがキャリアの悩みを解決! 無料キャリア相談はこちらから

Ruby if文の基礎から応用の一行表現で脱初心者!

作成: 2016.10.04 更新: 2020.03.05

>>No.1エンジニア養成プログラム テックキャンプ

読むだけでIT転職が有利になる限定資料はこちら

プログラミング言語 Ruby を学んでいるあなたに質問です!
あなたはif文を書くたびに文法を忘れてしまってエラーが出ていませんか?

その度に参考書を開いて調べて…を繰り返してしまい面倒だと思います。

しかし、そんなお悩みはもう不要です!

この記事では、初心者にもわかりやすく簡単なコードで解説いたします。

rubyを始めたばかりでも、この記事を読めば、もうif文で悩むことはありません。

これからは毎回調べることなくコードを書くことができるようになります。

早速、if文をマスターして脱初心者を目指しましょう!

if文の基礎

そもそも、「if」、とはどういう意味でしょうか。

英語で、もし〜〜(ならば)、という意味ですね。例えば、

If it rains, then I’ll stay home.
(もし雨が降るならば、家にいる。)

英語でifはこのように使いますね。

ここで、it rains(雨が降る)の部分は条件と呼ばれます。

Rubyは英語の文法と、とてもよく似ていて、同じように書くことができます。

それでは、早速見ていきましょう。

サンプルコード

if 1 == 1 then
  puts 'ここの部分が実行されます'
end

if true then
  puts 'ここの部分が実行されます'
end

英語ととても似ていて、

if (条件) then
  (条件を満たした時の内容)
end

このようにして、if文を使うことができます。

ここで、上のコードで出てきた == について説明します。

代入を意味する = とは意味が違うので、注意しましょう。

a == b とは、aとbが等しいか?という条件を表します。
上のコードでは、1 == 1 となっており、条件を満たします。

条件を満たすことを といい、Rubyでは true と表現します。

一方で、その条件を満たさないことを といい、Rubyでは false と表現します。

ここで、thenの部分は省略することができます。(英語の場合でも使わないことが多いですね)

if true
  puts 'thenを省略しても大丈夫です'
end

ifとelse

今までは、条件が満たされる(真)の場合を考えてました。

次からは、条件が満たされない時も考えていきましょう。

if weather == 'good'
  puts '今日は良い天気です'
else
  puts '今日は良い天気とは言えません'
end

このように、条件が満たされない時は、別の処理を実行する場合は、else文を用います。

以上のように、ifとelseを用いて、その時の条件によって、処理を制御することができます。

unless

条件が偽の場合に処理を実行する場合は、unless文を使うことができます。

unless 1 == 2
  puts '条件が偽なのでここの部分が実行されます'
end

比較

ここまでは、 == によって、条件を書いてきました。

しかし、条件を書く方法は他にもあります。ここでは、基本的なものを紹介していきたいと思います。

等しい(==) 等しくない(!=)

a = 1

if a == 1
  puts 'aは1に等しいので、ここの部分が実行されます'
end

if a != 2
  puts 'aは2と異なるので、ここの部分が実行されます'
end

ここで、新たに != が出てきました。

a == b とは、aとbは異なるか?という条件を表します。
上のコードでは、a != 2 となっていて、a = 1なので、条件を満たします。

大小関係

a = 1

if a > 0
  puts 'aは0より大きいので、ここの部分が実行されます'
end

if a < 2 puts 'aは2より小さいので、ここの部分が実行されます' end 

if a > 1
  puts 'aは1以上なので、ここの部分が実行されます'
end

if a < 1 puts 'aは1以下なので、ここの部分が実行されます' end 
if a > 1  puts '実行されません'
end

ここでは、 > が出てきました。

これは大小関係の条件を表すもので、直感的ですね。
= は、ちょうどその値も含めるという意味です。

上のコードでは、a = 1なので、a >1 では、aが1より大きい、という意味なので、ちょうど偽であるということになります。

コロナ禍でも安心してエンジニア転職

テックキャンプ エンジニア転職は、未経験から約99%がエンジニア転職を実現しているプログラミングスクールです。 テックキャンプはコロナ禍でも安心して受講が可能。「徹底したサポート」「やりきれる学習環境」を自宅で学べるオンラインスタイルと感染防止対策を徹底した教室受講のどちらでも提供しています。 キャリアに悩む前に、まずはテックキャンプの無料カウンセリングを受けてみませんか?

論理文

条件はいつも一つとは限りません。

次に、ある条件に対して、他の条件を組み合わせたり、否定をしたりする方法を紹介します。

かつ(and)

a = 1
b = 2

if a == 1 && b == 2
  puts '二つの条件がともに真なので、実行されます'
end

if a == 1 and b == 2
  puts '二つの条件がともに真なので、実行されます'
end

if a == 0 && b == 2
# 実行されません
end

ここで、 && と and が出てきました。日本語では、「かつ」と言ったりもします。

これらは、ともに同じ機能を持ち、二つの条件がともに満たされれば、真、ということを表します。
つまり、どちらか片方の条件でも満たさなければ、偽になってしまいます。

または(or)

a = 1
b = 2

if a == 1 || b == 2
  puts '二つの条件がともに真なので、実行されます'
end

if a == 1 or b == 2
  puts '二つの条件がともに真なので、実行されます'
end

if a == 0 || b == 2
  puts 'bが2であることは真なので、実行されます'
end

ここでは、|| と or が出てきました。日本語では、「または」と言ったりもします。

これらは、どちらも同じ機能を持ちます。
二つの条件のどちらか一つでも満たされれば、真ということを表します。
なので、二つの条件の両方が満たされない時に、偽になります。

否定(not)

a = 1

if !(a < 0)
  puts '実行されます'
end

if not a < 0
  puts '実行されます'
end

! と notは、否定、つまり、真偽をひっくり返すことができます。

上のコードで、a < 0 は本来は、偽ですが、!やnotを使うことで、真にすることができます。

この記事のハッシュタグ

応用表現

ここまではRubyにおけるif文の基礎について解説しました。

ここからは、応用編として、一歩踏み込んだ内容を解説しますが、脱初心者を目指す方は是非読んでみてください。

あなたのRubyのコードを短く簡潔に書くことができます!

Rubyの真偽について

Rubyの真偽は他の言語とは少し違って特徴的です。しかし、きちんと理解すれば、簡潔なコードを書くことができます。

実は、Rubyでは、true,false以外でも、すべての値は真偽を表します。
まずは、これを押さえましょう。

Rubyで偽とみなされるもの

  • false
  • nil

Rubyで真とみなされるもの

  • 上記の偽のもの以外すべて(trueや0などの数字も)

 

特に重要なものは、

  • nilは偽
  • 0は真

この辺りはやや間違えやすいので気をつけましょう。

これを利用したコードを紹介します。

if user
  puts user.name
else
  puts 'ユーザーが見つかりません'
end

このコードでは、userが存在する(nilではない)時、名前を表示して、userが存在しない(nilである)時は、エラー文を出すという処理を簡潔に書いたものです。

後置で一行記述

ifの中で実行する内容が一行であれば、 if~endと三行に渡って書く必要はなく、一行でまとめて書いてしまうことができます。

a = 1
if a == 1
  puts 'aは1です'
end

puts 'aは1です' if a == 1

Rubyでは、実行する内容が一行の時は、ifを後置することで、簡潔に記述することができます。

同様に、unlessも一行で書くことができます。

a = 1
unless a != 2
  puts 'aは2ではないです'
end

puts 'aは2ではないです' unless a != 2

まとめ

今回、Rubyのif文を基礎からやや応用まで解説いたしました。特に最後の応用表現は難しい部分もありましたが、これを理解できたあなたはif文は完璧です。

プログラミングをしていると、if文をたくさん書くことになると思いますが、もう毎回調べたり、エラーに悩んだりすることはないと思います。

Rubyプログラミングで重要なことは、見やすく簡潔にコードを書くことです。特に最後の一行表現は、簡潔にコードを書く一つのテクニックと言えるでしょう。

Rubyには、簡潔にコードを書くテクニックがたくさんあるので、each文やmapメソッドなどを調べてみましょう。

簡潔に記述して、見やすいコードを書くことができれば、あなたはもう脱初心者です!

自宅にいながら、プロのカウンセラーにキャリア相談!

テックキャンプ エンジニア転職は、未経験からのエンジニア・Webデザイナー転職を実現するスクールです。転職成功率は99.0%。※2019年8月末時点。学習完了後、当社の転職支援利用者の転職成功率

テックキャンプでは、オンラインでカウンセリングや学習サービスを提供しています。

オンラインでも、テックキャンプならではの「徹底したサポート」と「やりきらせる学習環境」は変わりません。オンラインでプログラミングを習得した方のインタビューはこちら

キャリアに悩んだら、ビデオ通話で無料オンラインカウンセリング(キャリア相談)を受けてみませんか?オンラインカウンセリングのやり方は簡単で、5分もあれば準備が完了します。

まずはカウンセリングから、ぜひご利用ください。

無料カウンセリングの詳細はこちら

この記事を書いた人