Menu
Coddy logo textTech

while ループ

CoddyのPythonジャーニー「基礎」セクションの一部。レッスン 36/77。

while loopはfor loopとは異なります。for loopでは特定のrangeを反復処理できますが、while loopでは、特定のconditionが満たされている限り反復処理を続けることができます。

while ループを使用するには、次のように記述します。

while condition:
	code

コードは、condition が True の場合にのみ実行されます。

condition は通常、<=(以下)、>=(以上)、<(より小さい)、>(より大きい)、または ==(等しい)などの比較演算子を使って作られます。その比較結果が True である限り、ループは実行され続け、False になるとすぐに停止します。

loop の本体内では、通常、チェックされている update 対象の variable を更新する必要があります。これは、拡張代入演算子(加算して代入する +=、減算して代入する -=、乗算して代入する *=、除算して代入する /= など)を使って行います。たとえば、x *= 2x = x * 2 の短縮形です。variable を更新しないと、condition は決して変化せず、loop は永遠に実行され続けます。

whileで問題を解決できても、forループでは解決できない使用例は数多くあります。

例えば、次の問題を考えてみましょう:

与えられた数より大きい、最小の2の累乗を見つけてください。

これを解決するために、現在の2の累乗に2を繰り返し掛け、与えられた数より大きくなるまで続けるwhileループを使用します:

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2

print(power_of_two)

ここで、power_of_two <= numberは比較演算子を使用するconditionであり、power_of_two *= 2は複合代入演算子を使用して各反復でvariableを更新します。power_of_twonumberを超えると、conditionはFalseになり、loopが停止します。

challenge icon

チャレンジ

初心者

1つの入力、float型の数値を受け取るプログラムを書いてください。

数値が3.5以上である限り、whileループを使って入力値を2で割ってください。

3.5より小さくなった最初の数値を出力してください。

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ