while文
繰り返し処理にはfor以外にwhile文がある。
while文を用いると、「ある条件に当てはまる間、処理を繰り返す」
といったことが可能になります。
記述はwhile 条件式:
と書き、条件式の結果がTrueの間、while文内の処理を繰り返します。
例
x = 1
while x <= 10:
print(x)
x += 1
出力結果
1
2
3
︙
9
10
↓↓↓↓↓↓↓ あなたの記事の内容
───────
↑↑↑↑↑↑↑ 編集リクエストの内容
と記述することで、1~10までの数字が出力されます。
流れとしてはまず、while文の前に変数を定義します。この変数をwhile文の条件式で用いて、処理を繰り返すかどうか判断します。
↓↓↓↓↓↓↓ あなたの記事の内容
例ではwhile文内の処理が1周終わると、その度に変数xに1が足されていき、再び条件式「`x<=10`」で`True`かどうか判断されます。
条件式で`True`と判断されると、もう一度処理が行われます。
これを繰り返し、条件式「`x<=10`」が`False`と判断された時、繰り返しを終了します。
**※ここでwhile文の記述において注意しなければいけないことがあります**
───────
例ではwhile文内の処理が1周終わると、その度に変数xに1が足されていき、再び条件式「`x <= 10`」で`True`かどうか判断されます。
条件式で`True`と判断されると、もう一度処理が行われます。
これを繰り返し、条件式「`x <= 10`」が`False`と判断された時、繰り返しを終了します。
**※ここでwhile文の記述において注意しなければいけないことがあります**
↑↑↑↑↑↑↑ 編集リクエストの内容
無限ループ①:変数の更新をしていない
↓↓↓↓↓↓↓ あなたの記事の内容
```py:例
x = 1
while x <= 10:
print(x)
# x += 1 を記述していない場合
出力結果
───────
```py:例
x = 1
while x <= 10:
print(x)
#「x += 1」 を記述していない場合
出力結果
↑↑↑↑↑↑↑ 編集リクエストの内容
1
1
1
︙
↓↓↓↓↓↓↓ あなたの記事の内容
上記のように、while文の処理の最後に変数の値を更新し忘れると、条件式が常にTrue
となってしまうため、繰り返し処理が無限に行われてしまいます。
───────
上記のように、while文の処理の最後に変数の値を更新し忘れると、条件式が常にTrueとなってしまうため、繰り返し処理が無限に行われてしまいます。
↑↑↑↑↑↑↑ 編集リクエストの内容
***
無限ループ②:インデントを忘れている
↓↓↓↓↓↓↓ あなたの記事の内容
```text:例
x = 1
while x <= 10:
print(x)
x += 1 ← インデントを忘れている場合
出力結果
───────
```text:例
x = 1
while x <= 10:
print(x)
x += 1 ← インデントを忘れている場合
出力結果
↑↑↑↑↑↑↑ 編集リクエストの内容
1
1
1
︙
↓↓↓↓↓↓↓ あなたの記事の内容
───────
↑↑↑↑↑↑↑ 編集リクエストの内容
上記の様に記述してしまうと、同様に無限に処理が行われてしまいます。
原因は、変数の値を更新する処理を記述する際にインデントを忘れてしまうと、while文の外と見なされてしまうためです。
よって、`print(x)`の処理が行われた後、「`x += 1`」が行われずに、再び条件式が判断され常に`True`となってしまうため、無限にwhile文内の処理が行われます。
※無限ループの状態はコンピュータに異常な負荷をかけることになるので、注意する必要があります。繰り返し処理では必ずどこかで条件式が`False`になるように実装するようにする。