【Ruby入門】while文の使い方を基礎の基礎から解説

while文って何?
While文の基本的な構文ってどんなの?
For文との違いは何?
breakはどうやって使うの?

今回はいくつかある繰り返し文の中で代表的なwhile文の使い方を徹底解説していきます。繰り返しぶんの中でもう1つ代表的なFor文との違いやbreak文との使い方も解説していきますので最後まで見ていってください。

また、Rubyをインストールし、プログラムを実行できるまでの手順を説明した記事もよろしければ読んでみてください。

https://www.sejuku.net/blog/3958

目次

while文の基本的な使い方

while文は指定した条件式が真(true)の間、繰り返し実行します。

基本構文は

while 条件式 do
実行する処理1
実行する処理2
end

となっています。

例えば、

num = 0を最初に定義し、その後numに1ずつ足し合わせ、3になったら終了するようなプログラムを作ってみると

num = 0
while num <= 2 do
 num += 1
end

このような文になります。

説明
一行目:num = 0と定義する
二行目:num が2になると終了するような条件式
三行目:numを画面に出力させる
四行目:num に1ずつ足していく
五行目:繰り返しを終了させるend

実行結果は

0
1
2

となります。

このプログラムの動きを解説すると、

まず最初にnum=0と定義させます。その後 num は現在0で、 0 <= 2が真なので

numを出力させ、0と出ます。

そして0 + 1をさせ、num = 1となります。その後もう一度条件式の判定に入り

1 <= 2は真なのでputs num で 1が出力され、

1 + 1が実行されnum =2となります。

その後もう一度条件式判定に入り、2 <= 2は真なので2が出力され

2 +1が実行されnum=3となります。

ここでもう一度条件式に入り、 

3 <=2 は偽なのでプログラムはendになります。

以上が基本的なwhile文の流れになります。

for文との違い

まず、while文とfor文の基本構文の違いを見ていきましょう
while文

while 条件式 do
実行する処理
end

for文

for 変数 in 範囲オブジェクト do
実行する処理
end

このように、for文には要素、範囲オブジェクトが必要です。

例えを書いてみましょう。

for i in 1..5 do
 puts i
end

一行目:iという変数を用意し、1から5までの範囲の数値がiに代入されます

二行目:iの数値を出力しています。

三行目:繰り返しを終了させるendです。

実行結果は

1
2
3
4
5

となります。

for文では今回変数にある i が自動的に+1されるのでこのように1つずつ処理が実行されています。

このようにfor文は与えられた範囲オブジェクトの要素数(今回の場合、1,2,3,4,5の5つ)によって繰り返し回数が決まっています。

ですがwhile文は条件式によって繰り返し回数が決まります。

while文とfor文の違いの結論をまとめると

while文は条件式によって繰り返し回数が決まる。

for文は範囲オブジェクトの要素数によって繰り返し回数が決まる。

ということでした。

breakを使用したwhile文

break文とはどのような使い方をするのでしょうか?

まずは、一番最初のwhile文の例にbreak文を入れてどうなるのかを見ていきましょう。

num = 0
while num <= 2 do
 puts num
 num += 1
end

こちらの文を実行すると、

0
1
2

でした。

breakを入れてみましょう。

num = 0
while num <= 2 do
puts num
 num += 1
 break
end

すると実行結果は

0

になります。このbreak文は、break文に到達すると繰り返しのループを抜け、終了させる文です。

このプログラムの流れを解説すると

まず最初にnum=0と定義させます。

その後 num は現在0で、 0 <= 2が真なので

Numを出力させ、0と出ます。

その後breakがくるのでループが終了し、プログラムが終了します。

ですが、break文はifで条件をつけてその条件になれば繰り返しを終了させるのが一般的です。

例えば、

i = 0
while i < 10 do
 puts i
i += 1
if i > 5
 break
end
end

この文の実行結果は

1
2
3
4
5

となります。
こちらのコードを説明すると

1行目:i =0と定義する

2行目:iが10だとプログラムを繰り返す条件式

3行目:iを出力する

4行目:iに1を足していく

5行目:もし、iが5以上になったら

6行目:breakし、繰り返しを止める

7行目:if文の終了

8行目:繰り返しの終了

実行結果は

1
2
3
4
5

となります。

このように、break文は指定した場所で繰り返しを止めたい時に使われる条件となります。

まとめ

今回は、while文の基本的な使い方やfor文との違い、break文を使った場合のwhile文について説明していきました。

いかがだったでしょうか。

while文やfor文の違いはわかりづらい部分はありますが実際に自分でコードを打って使ってみれば案外簡単にわかるかもしれないので是非上記に記載したプログラムを書いて学習を進めてみてください!

この記事を書いた人

こんにちは!貝原(@touhicomu)と申します。
現在は、Web業界のフリーランスとして、主にPHP/WordPress/BuddyPress/VPSサーバー構築などの業務を受注しています。
現住所は、日本の西海岸、長崎県は波佐見町です。田舎ライフです。^^
地元の観光団体「笑楽井石」にボランティアでほたる撮影会やそば塾などのスタッフとして参加させて頂いています。
以下の活動も行っています。
 ・笑楽井石のブログ
 ・エクセル関数を日本語化するソフト
 ・エクセルVBAを日本語で記述するソフト

目次