Home » ruby » ruby while文でコードをループ

ruby while文でコードをループ

while文でコードをループ

イメージ図

rubyのwhile文は、

条件文がtrueであればループし続けます。

条件文がtrueからfalseになるようにコードを書かないと

無限ループに陥ってしまいます。

なので、

while文の条件文をtrueからfalseに

するようにしていかないといけないのです。

 

実際にrubyでwhile文を書くと
下記のようになります。

while [条件文] do
    条件文がtrueの場合に実行するコード
end

while文のコードを書いてみます。

i = 1

    while i < 4 do
        puts("#{i}回繰り返し")
        i += 1 # iに数値を加算
    end

#=> 1回繰り返し
#=> 2回繰り返し
#=> 3回繰り返し

while文の条件文をtrueからtrueの状態にして
無限ループを書いてみます。

i = 1
        # iの数値が変わらずtrueの状態がキープされる
    while i < 4 do
        puts("#{i}回繰り返し")
    end 

#=> 1回繰り返し
#=> 1回繰り返し
#=> 省略

trueからfalseになるようにコードを書かないと
無限ループにはまってしまいます。

while文にwhile文をネスト

イメージ図

イメージ図でわかるように、

while文の中にwhile文をいれる入れ子構造

のようにすることもできます。

 

実際にwhile文にwhile文を

ネストしたコードを書いてみます。

i = 1
while i <= 5 do
    x = true
    while x
        puts("#{i}回の繰り返し")
        x = false
    end
    p i
    i += 1
end

#=> 1回の繰り返し</pre>
<pre>#=> 1
#=> 2回の繰り返し
#=> 2
#=> 3回の繰り返し
#=> 3
#=> 4回の繰り返し
#=> 4
#=> 5回の繰り返し
#=> 5

このようにwhile文のネストはできますが、
無限ループに細心の注意を払っておかなければ痛い目にあいます。

コメントを残す

%d人のブロガーが「いいね」をつけました。