プログラミング言語 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より大きい、という意味なので、ちょうど偽であるということになります。
論理文
条件はいつも一つとは限りません。
次に、ある条件に対して、他の条件を組み合わせたり、否定をしたりする方法を紹介します。
かつ(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メソッドなどを調べてみましょう。
簡潔に記述して、見やすいコードを書くことができれば、あなたはもう脱初心者です!
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。