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