初心者向け学習方法一覧はこちら
この記事ではRubyの条件分岐と繰り返しについて解説します。
Rubyの実行環境がない方は、まずこちらの記事を参考に環境構築されることをおすすめします。
今回解説する条件分岐と繰り返しは、プログラミングを書く上で頻繁に利用することになります。
条件分岐と繰り返し
まずはじめに条件分岐と繰り返しがどのような処理か言葉で説明します。
条件分岐とは言葉で表すと「もし(Aの条件)なら(Bの処理)をする」という処理です。Rubyで条件分岐をするためには、if文を使います。
繰り返しとは言葉で表すと「(Aの条件)まで(Bの処理)をする」という処理です。Rubyで繰り返し処理をするためには、while文、for文を使います。
それでは実際にコードを書きながら学習しましょう。
条件分岐
条件分岐をするには条件式とプログラムに実行してほしい処理内容を記述します。
条件式には具体例として、次のような条件を記述します。
- ある値と一致しているか:
a == b
- ある値より大きいか:
a < b
- ある値より小さいか:
a > b
- 配列に要素が入っているか:
[].empty?
配列とは[]
で囲んだ複数の文字列や数字の値をまとめて扱うことができる型のことを指します。
さらに知りたい方はよく使用するメソッドも紹介しておりますのでこちらをどうぞ!
次にif文を使って条件分岐を書くためのコードを記述しましょう。
条件が1つの場合
if文で条件分岐をする場合は次のように記述します。
if 条件式 then
処理
end
条件式の後に改行がある時、「then」は省略できますが、条件分岐の終わりを意味する「end」を忘れないように注意が必要です。
if文を実際に使ったコードは次のようになります。
a = 10
b = 5
if a > b then
p "aのほうが大きいです!"
end
#期待する出力内容は「aのほうが大きいです!」
処理内容を出力するために、文字列を出力する「puts」の短縮形の「p」を使用しました。
#
はコメントアウトと呼び、#
から始まる1行をコメントアウトすることができます。プログラムを実行したくない場合や、コメントを残したい時に使用します。
条件が2つの場合
先ほどのコードに、さらにどの条件にも一致しない場合の処理を加えたいときには「else」を使用します。
else文を加えたサンプルコードです。
a = 5
b = 10
if a = b
p "aとbは等しいです!"
else
p "aとbは等しくありません!"
end
#期待する出力内容は「aとbは等しくありません!」
条件が3つ以上の場合
さらに、3つ以上の条件を加えたい場合の処理を加えたいときには「elsif」を使用します。
elsifを加えたサンプルコードです。
a = 10
b = 10
if a > b
p "aのほうが大きいです!"
elsif a < b
p "bのほうが大きいです!"
else
p "aとbは等しいです!"
end
##期待する出力内容は「aとbは等しいです!」
繰り返し
繰り返しをする為には処理する継続する条件と処理内容が必要です。
処理する継続する条件には条件式で指定するパターンと数字で指定するパターンの2パターンあります。
条件式の場合には「while」、数字の場合は「for」を使用します。
while
while文は次のようにコードを記述します。
while 条件式 do
処理
end
※doは省略可能です。
この時、終わらない条件式を指定してしまうと、同じ処理が無限ループしてしまいます。
無限ループが発生するとPCへの負荷になりますので、もし無限ループが起こった場合は「ctrl+c」で強制終了しましょう。
while文のサンプルコードです。
a = 10
i = 0
while a > i do
p i
i += 1
end
#0から9までの整数が出力されます。
for
for文は次のようにコードを記述します。
for 変数 in 繰り返し条件 do
処理
end
※doは省略可能です。
forは次のように使います。
- 整数の範囲を指定したい場合 「in 始まりの数字..終わりの数字」
for i in 1..10
p i
end
#1から10までの数字を出力します。
条件分岐と繰り返しを使ってFizzBuzzをやってみよう
条件分岐と繰り返しを使った問題としてFizzBuzzというものがあります。
FizzBuzz問題とは0から100までの整数に対して
- 3の倍数のときに「Fizz」と出力する
- 5の倍数のときに「Buzz」と出力する
- 3の倍数かつ5の倍数のときに「FizzBuzz」と出力する
- それ以外の場合には「数字」を出力する
という数字遊びです。
非常にオーソドックスな問題で応用が効きやすい問題のため、ぜひ実際に手を動かしてコードを書いてみてください。
Rubyの演算子で余りを計算するときは「%」を使用します。あまりが0の時は、Fizz, Buzz, FizzBuzzのいずれかを出力し、0以外の時は、数字のみを出力します。
for i in 1..100
if i % 15 == 0
p "FizzBuzz"
elsif i % 3 == 0
p "Fizz"
elsif i % 5 == 0
p "Buzz"
else
p i
end
end
FizzBuzzでの注意点として、プログラムは上から実行されるため、先にi % 15 == 0
の処理を行う必要があります。もし先にi % 3 == 0
が実行されると「Fizz」が出力され、「FizzBuzz」と出力することができなくなります。
まとめ
条件分岐と繰り返しはプログラミングをする上で頻繁に使う処理ですので、サンプルなしでもコードが書けるように学習しましょう!
他にもRuby初学者に向けての記事を紹介しておりますのでこちらの記事も是非どうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け