■プログラミング学習
◎while文
Rubyの繰り返し処理としては、eachの他にもwhile(ワイル)文という構文があります。
while文は、指定した条件が真である間、処理を繰り返します。
while 条件式 do #条件が真であるときに繰り返す処理 end
※条件式のあとのdoは省略することができます。
例文
number = 0 while number <= 5 puts number number +=1 end
とすると、ターミナルの出力結果は
0
1
2
3
4
5
となります。これは、number <= 5の値まで出力されています。
◎無限ループ
繰り返し処理を実装する際に、「無限ループ」を覚えておく必要があります。
無限ループとは処理が永遠に繰り返されることを指します。
無限ループのサンプルとして、2つ例示いたします
例文1
number = 0 while number <= 5 puts number # 削除する number +=1 end
先程の例文から、number +=1を削除すると、numberの変数の値は、常に0のままなので、 while number <= 10が常に真となり、
無限に0がターミナルに出力されます。
例文2
number = 0 while true puts number number +=1 end
こちらは、while文の特性を利用(右の式を判定最終的に真偽値に変換)し、条件式部分にはじめからtrueと書くことによって、
意図的に無限ループを発生させているものです。
無限ループはコンピュータに大きな負荷をかけてしまうため、繰り返し処理を実装する場合は特に注意が必要です。
◎無限ループから抜け出す方法 break
ある特定の条件になったらループから抜け出すという処理のときにbreakを使います。
number = 0 while number <= 8 if number == 4 break end puts number number +=1 end # ターミナル出力結果 # 0 # 1 # 2 # 3
上記のコードの通り、if文を追加しています。
numberの変数が4にだったとき、breakを実行しています。
実行結果としては、出力結果は3で止まっています。
つまり、number変数の値が、4のときにif文内のbreakが実行され、ループから抜け出していることが確認できます。
if文などの条件分岐とbreakを使うと、特定の条件のときにループを脱出することができます。