【Ruby入門】ifやif elseの基本からANDやORを使う応用まで完全解説!!

11835_20180307
桃太郎
書いた人 桃太郎
侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは! フリーランスの桃太郎です。

この記事ではRubyのif文について分かりやすく解説をすすめていきます。

if文の基本的なことから実践的なことまでを一通りマスターできるように、本記事を作成しました。

その為、本記事を読み終わる頃には、あなたはRubyのif文をきちんと整理して理解していることでしょう。

そして、ぜひ本記事をブックマークして、使い方を忘れた時はすぐに確認できるようにしておくことをオススメします。

この記事では

・if文の基本的な書き方
・if else文で複数の条件を処理する方法

などの基本的な内容から

・or演算子で「AもしくはB」条件を実現する
・nilかどうかを判定する

などの応用的かつ実践的な内容を順に解説していきます。

それでは、一緒に学習を進めていきましょう。

if文の基本

まずはif文の基本をみていくことにしましょう。

if文の基本的な書き方

基本的な書き方は以下の通りです。

ifは日本語で「もし」、thenは「そのときは」と訳することができます。

つまり、もし「条件」が満たされる、「そのときは」、「処理」を実行して終了(end)する。

という流れになります。

具体的なサンプルで確認してみましょう。

# サンプルa

# 実行結果

“条件”にあたる部分が「 age < 20 」の箇所です。

今回は変数ageには’18’が入っていますので、「 18 < 20 」は数式として正しく、条件を満たしたので、その下にある処理(puts 〜)が実行されました。

ageの箇所を20以上の数値に変えて、実施すると「あなたは〜」の文字が出てこないことをご自身の環境で確認してみてください。

以上が、基本的なif文の形ですが、以下のように書くこともできます。

# サンプルb

# サンプルc

サンプルb,cともに出力結果はサンプルaと同一です。

それぞれ、基本的な形に比べて、プログラムコードの書く量を少なくできたり、1行にまとめることができるなどの特徴があります。

どの書き方を選ぶかはプログラムを書く人の好みや開発チームの方針により様々です。

どのような場面でも柔軟にプログラムを読み書きできるように、上記のバリエーションを知っておくと良いでしょう。

基本的なif文の書き方の最後の締めとして、if文の結果を変数に代入する書き方をご紹介します。

まずはサンプルをご覧ください。

# サンプルd

if文( if から end まで)の出力結果を変数resultに代入し、最後にputsでその中身を表示しています。

このようにif文の処理結果を後ろに続く処理で活用したい場合などには便利な使い方となりますので覚えておくと良いでしょう。

if else文で複数の条件を処理する方法

前の章で解説した基本形では、if文の条件を満たす場合のみif文の中の処理が行われる書き方でした。

ただ、条件を満たさないときにも別の処理を行いたい場合もあります。

そのような時に使うのが「if else文」、そして「if elsif 文」です。

まずは文の構成を確認しましょう。

# if else 文の構成

# if elsif 文の構成

elseのあとは”条件を満たさない”時に行いたい処理を書くのがポイントです。

また、elsif は複数の異なる条件によって処理を分けたい場合に活用します。

そして、elsifは上に書かれている条件から順番に条件を満たすか判定を行い、満たした時点でその後ろにある条件式の判定は実行されません。

それでは、具体的なサンプルコードで確認していきましょう。

# if else 文のサンプル

# 実行結果

# if elsif 文のサンプル

# 実行結果

実際に上のサンプルにある変数ageの値を色々と変更して、どのputs処理が行われるか確認すると理解が深まるので是非試してみてください。

そして、ここで気をつけるポイントをお伝えします。

Ruby以外のプログラミングを学んでいる方は特に注意すべきポイントになります。

それは、elsifという文字のつづりです。

他のプログラム言語では、「else if」という書き方がよくあるのですが、Rubyではelsifと書きますので覚えておきましょう。

それでは本章の最後に、elsifと関連性の強いcase文について軽くご紹介します。

elsifとcase文は複数の条件を扱うという点でとても良く似ています。

サンプルコードでそれぞれの処理の流れを比較してみましょう。

# elsif文

# case文

# 実行結果(両方のサンプルともに)

使われている語句(caseやwhen)の違いはもちろんありますが、elsif文とcase文の構成はとても似ていることがわかりますね。

case文についてより詳しく知りたい方は以下の記事も参考にしてみると良いでしょう。

unlessを使い「〜では無い場合」の条件を処理する方法

基本編の最後に登場するのは、「もし仮に〜では無い場合」を実現するunless文についてご紹介します。

「もし仮に〜では無い場合」ときくと、少しまわりくどい条件に感じ、そもそもif文だけで良いのではと感じる方もいるかもしれませんね。

ですが、もし条件を満たさない時の処理だけを記述したい場合などは、このunless文を使うことを検討します。

では、サンプルをみてみましょう。

# 実行結果

上記のサンプルのように、通常会員以外の場合は、セール商品の値引額を変更したり、特別な情報をメールで送るなどの処理へ続けるための最初の判定にunlessを活用しています。

また、unlessではelseと併用することも可能です。

ただし、elsifとは併用できず、エラーとなりますので注意が必要です。

# 実行結果

そして、unlessの使い方をif文で代用するために、以下のサンプルのような書き方も可能です。

# 実行結果

unlessの箇所に「 if not 」と書くことで同様の処理が実現できます。

また、if not はelsifを正常に併用できる点がunelssと異なるところです。

if文の応用

では、次にif文の使い方についてより応用的な内容を解説していきましょう。

or演算子で「AもしくはB」条件を実現する

例えば、移動手段が電車かバスの場合は経費の精算を行う処理をif文で実現するとします。

このようにAかBかのいずれかの条件を満たすかどうか判定するためには、or もしくは || という記号を使います。

この記号のことを論理演算子と呼びます。

具体的にサンプルで確認してみましょう。

# 実行結果

このように複数の条件を合わせて一つの判定式とすることができるのが、論理演算子の特徴です。

and演算子で「AかつB」条件を実現する

では次に、他の論理演算子として良く使われるものがand演算子です。

こちらはAもBの両方の条件を満たして初めて満たすという判断になるものです。

# 実行結果

上のサンプルのように、and もしくは && という論理演算子を使用することで、「AかつB」条件を実現できます。

nilかどうかを判定する

プログラムにおいて、オブジェクト(データや処理内容を入れることができる箱のようなもの)が存在しないことを表現する為の値として nil があります。

この nil の状態なのかどうかを判定する方法が if 文とよく一緒に利用されるので、ここでご紹介します。

# 実行結果

nil? という箇所に注目してください。

はてなを付けることで、nil状態ですか?と判定することができます。

そして、その結果を元にif文で処理を行うプログラミングの実践例が多いので、覚えておくと良いでしょう。

さらに詳しくnil?について知りたい方は以下の記事を参考にしてください。

三項演算子を使い1行にコードをまとめる方法

本記事の最後に、三項演算子なるものをif文と関連してご紹介します。

ポイントとしては三項演算子を使うと、if文の記述内容が1行でスッキリまとめて書くことができます。

ただし、今回は”あなたは未成年です。”など処理結果が短い文字列を出すだけの場合であれば、三項演算子で見やすくなりますが、処理結果が複雑なものの場合は、if文を利用したほうが読みやすいプログラムコードになります。

三項演算子について詳しく知りたい方は以下の記事を参考にしてみるのも良いでしょう。

まとめ

いかがでしたか?

今回はrubyのif文について基本から応用まで一気にご紹介しました。

if文には条件がいくつ必要なのか、条件を満たさない場合も必要なのか、もしくは条件を満たさないことを期待した処理を書く必要があるのか、など様々なケースに対応する構文がありました。

if else や elsif そして、unlessや if notなど関連する条件判断の書き方は色々とありますが、ひとつひとつ実際に自分の手で動かして試してみることがマスターへの近道です。

そして、ぜひ本記事をブックマークして、if文の使い方を忘れた時はすぐに確認できるようにしておくことをオススメします。

もし今後、if文に関して迷うことがあれば、ぜひこの記事を思い出して下さいね。

Rubyカリキュラム無料公開中!
この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Rubyを最短で習得したい方へ
近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」
このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2

学習者インタビュー

人気講師インタビュー

人気記事セレクション

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大11,000円!テックライター募集


LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

桃太郎

桃太郎

20代は役者、30代はエンジニア、そして40代を迎えた現在、Webライターとして活動しながら、3人の息子たちの家庭教育、アンチエイジングなどにも力を入れて日々ノマドライフを楽しんでいます。