0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby 条件分岐 if文

Last updated at Posted at 2025-02-06

初学者のメモ

自分が忘れないようにするためのメモ書きです。
今回は、 Rubyの条件分岐に関してです。特に、複数の条件分岐、Fizz Buzzについてです。あくまで、自分の知識の確認ですので、拙い記述です。ご容赦ください。

条件分岐とは

プログラム中で、ある条件が満たされているかどうかを判断し、次に実行するコードを変化させるもの。複数の条件を指定したり、特定の値の時の処理などを記述可能。
if文もしくはswitch文で記述する。
今回はif文での記述。switch文はこちら。

if文の記述方法

以下のような記述方法となる。

if文
if 条件式1
    処理    #条件式1を満たしたときの処理
elsif 条件式2
    処理    #条件式1を満たさず、条件式2を満たしたときの処理
elsif 条件式3
    処理    #条件式1,2を満たさず、条件式3を満たすときの処理
else
    処理    #いずれの条件式も満たさないときの処理
end

ここで、いくつかの注意点があります。
・elsif文は複数記述可能。
・elsif、elseは不要な時に省略可。
上から条件の判断が優先されるため、注意(下記参照)。

Fizz Buzz問題とは

Fizz Buzzとは、1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言うゲームです。
元々は海外の言葉遊びでそのルールをプログラムに実装したものです。

プログラミングの初歩的な問題で扱われることが多いです。以下にコードを記述してみましょう。今回は1~15までの数字で試してみcます。

Fizz Buzz
for num in 1..15
    if num % 15 == 0
        puts "Fizz Buzz"
    elsif num % 3 == 0
        puts "Fizz"
    elsif num % 5 == 0
        puts "Buzz"
    else
        puts num
    end
end

出力は以下のようになります。

結果
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz

上記コードを細かく見てみましょう。

for num in 1..15

ここは1~15の繰り返しをfor文で表す。

    if num % 15 == 0
        puts "Fizz Buzz"

numが15で割り切れるとき、"Fizz Buzz"と出力。

    elsif num % 3 == 0
        puts "Fizz"

numが3で割り切れるとき、"Fizz"と出力。

    elsif num % 5 == 0
        puts "Buzz"

numが5で割り切れるとき、"Buzz"と出力。

    else
        puts num

それ以外は数字を出力。

注意点

注意点は、15の倍数の条件分岐を最初にすること。もし最初にしないと、他の条件分岐に進んでしまう。例えば、以下のコードを見てみましょう。(最初と2番目の条件を逆にする)

誤答例
for num in 1..15
    if num % 3 == 0
        puts "Fizz"
    elsif num % 15 == 0
        puts "Fizz Buzz"
    elsif num % 5 == 0
        puts "Buzz"
    else
        puts num
    end
end

すると、結果は以下のようになる。

結果
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz # 15で割り切る条件より先に3で割り切れる条件の分岐に進んでしまう

結果より、15の時、"Fizz Buzz"ではなく、"Fizz"で出力されてしまっている。
これを防ぐために、より厳しい条件を先に置いた方が有効である。

おわりに

今回はif文についてまとめました。Fizz Buzz問題は有名なので、初学者の方は、基礎固めにやってみるのもおすすめです。次回はswitch文です。

それでは、ばいなら~

2025.02.06 執筆

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?