Menu
CoddyTech

whileループ

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

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

whileループを使うには、次のように書きます。

while condition:
	code

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

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

ループ本体では通常、チェック対象の変数を更新する必要があります。これは、+=(加算して代入)、-=(減算して代入)、*=(乗算して代入)、/=(除算して代入)のような複合代入演算子を使って行います。たとえば、x *= 2はx = x * 2の省略形です。変数を更新しないと、条件が変わらず、ループが永遠に実行され続けます。

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は比較演算子を使った条件であり、power_of_two *= 2は複合代入演算子を使って各反復で変数を更新します。power_of_twoがnumberを超えると、条件はFalseになり、ループは停止します。

challenge icon

チャレンジ

初心者

1つの入力としてfloat型の数値を受け取るプログラムを書きましょう。

数値が3.5以上である限り、whileループを使って入力値を2で割りましょう。

3.5より小さくなった最初の数値を出力しましょう。

自分で試してみよう

quiz icon腕試し

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

基礎のすべてのレッスン

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