while
ある条件が満たされるまで同じ動作を繰り返したい場合の処理**(繰り返し処理)**の一つとしてwhileがあります。
- [基本形]
- [無限ループ]
- [無限ループを抜けたいとき]
基本形
while 動作を繰り返す条件 do
繰り返して欲しい処理
end
example1
入力
i = 0
while i <= 10
puts(i)
i = i + 1
end
出力
0
1
2
3
4
5
6
7
8
9
10
example2
入力
i = 10
while i >= 0
puts(i)
i = i - 1
end
出力
10
9
8
7
6
5
4
3
2
1
0
無限ループ
while文の条件設定を誤ると処理が止まらない無限ループに陥ってしまいます。
example
入力
i = 1
while i > 0 do
puts(i)
i = i + 1
end
実行すると処理が止まらないので、macでしたらCtrl+C
で強制的に止めて下さい。
出力(最後の方だけ)
277645
277646
277647
277648
277649
277650
277651
277652
277653
277654
277655
277656
277657
277658
277659
無限ループを抜けたいとき
わざと無限ループ処理を行い、途中でループを抜けたい場合
if ~ break
を使用しましょう。
example
入力
i = 1
while i > 0 do
puts(i)
i = i + 1
if i > 21
break
end
end
出力
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ちなみにi > 21でbreakですが、i = 21の時は、まず21がputsされます。その後、(i=)21に1が足され22になります。そこでi>21となりifの条件を満たしbreakが実行されます。なので、21は出力されます。