「エンジニアが成長できる環境を提供する」株式会社リヴェラの様子をご紹介します!

「エンジニアが成長できる環境を提供する」株式会社リヴェラの様子をご紹介します!

0から始めるWeb開発@Ruby基礎編(条件分岐)

2019.02.06

0から始めるWeb開発@Ruby基礎編(条件分岐) はコメントを受け付けていません。

夜釣り行ってヒトデしか釣れなかった野球小僧です(泣)

次回こそは大物を釣ってやります!!
【LIVELA釣り部】第3回@東扇島西公園
前回の続きでRubyでの条件分岐の書き方をご紹介します。

条件分岐は初学者が一番最初にぶつかる壁だと思います。実際に私も条件分岐は何度も復習しました。

0から始めるWeb開発@Ruby基礎編(文字の出力&変数の定義)
また、Rubyを2.6.1へupdateしました。手順は割愛しますが、以下の記事を参考にしました。(作業時間はおよそ30分ぐらいでした。)
rbenvでRubyのバージョンアップをする(for Mac)

早速、条件分岐を書いてみよう

今回は「if文」「unless文」「case文」を用いての条件文の書き方をご紹介します。

まずは、どのプログラミングでも必ず学ぶ「if文」からご紹介したいと思います。

if文で点数を評価するプログラムを書いてみる

条件分岐で一番使うものといえば「if文」だと思います。
点数によってコメントが変化するコードを書きたいと思います。
以下がそのコードです。


score = #100~0で好きな点数
if score <= 100 && score >= 80
  #100点以下80点以上のときの評価
  puts "合格点です"
elsif score < 80 && score >= 60
  #80点未満60点以上のときの評価
  puts "平均点です"
else
  #それ以外の点数のときの評価
  puts "赤点です"
end

変数「score」に好きな数値を代入することによって文字列が変化するコードです。
Rubyでのif文の書き方はifで始まりendで終わるように書きます。複数条件を指定する場合は「elsif」を用います。

最初の頃は、「elsif」ではなく「else if」と書いたりしてよくエラーを起こしてた未熟だった頃が懐かしいです。(※今でも未熟です。)

また、条件式で使ってる「&&」はandのことでどちらの式も「true」だったときに評価して、これを論理演算子と呼びます。詳しい内容は本記事で割愛しますが、知りたい方は以下の記事を参考にしてください。
Ruby 論理演算子を理解する

unless文とかいうif文と真逆な存在

Rubyにはifと反対な意味のunlessがあります。

条件式が「」つまりfalseになった場合に処理を実行することです。

unless文を用いてデータがあるときは”保存します”という文字列を出力、ないときは”データがないので保存ができません”という文字列を出力するコードを書きたいと思います。


data = #好きな値
unless data
  #dataがnilのときの評価
  puts "データがないので保存ができません"
else
  #dataが存在するときの評価
  puts "保存します"
end

if文と違う点は、条件式を追加できないところです。if文でいう「elsif」のことです。
また、Rubyではデータがないことを「nil」と呼びます。通常はデータがないことを「null」と呼ぶと思いますが、Rubyでは呼び方が異なるので注意してください。

case文でシンプルに書ける場合も

case文はRuby以外でも使われている条件分岐なのでなんとなくイメージが掴めるかと思います。
if文で書いた点数を評価するコードをcase文でも書いてみたいと思います。


score = #100~0で好きな点数
case score
when 80..100
  #100点以下80点以上のときの評価
  puts "合格点です"
when 60..79
  #80点未満60点以上のときの評価
  puts "平均点です"
else
  #それ以外の点数のときの評価
  puts "赤点です"
end

上記のコードのようにif文と比べてシンプルに書ける場合もあります。

また、3行目の「80..100」の意味は80以上100以下と表していて、このオブジェクトを範囲(Renge)オブジェクトと呼びます。

本記事では範囲(Renge)オブジェクトの説明を割愛しますが、知りたい方は以下の記事を参考してみてください。
Ruby Rangeクラスで範囲を扱うTips

次回予告

次回は配列、繰り返し処理についてご紹介します。繰り返し処理に関しては、Rubyでよく使う「eachメソッド」などをご紹介したいと思います。

それでは、次回のお楽しみに!

関連記事

コメントは利用できません。

エンジニア募集中!

株式会社リヴェラ Webページ

カテゴリー