Menu
Coddy logo textTech

while ループ

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

whileループはforループとは異なります。forループでは特定のrangeにわたって反復処理を行うことができますが、whileループでは特定の条件が満たされている間、反復処理を継続することができます。

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

while condition:
	code

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

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

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

while 文なら問題を解決できるものの、for ループでは解決できないユースケースは多く存在します。

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

与えられた数よりも大きい、2の最小のべき乗を求めなさい。

これを解決するために、whileループを使用して、現在の2の累乗が指定された数を超えるまで繰り返し2を掛けます:

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_twonumber を超えると、条件は False になり、ループが停止します。

challenge icon

チャレンジ

初心者

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

数値が3.5より大きいか、または等しい限り、whileループを使用して入力を2で割り続けてください。

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

チートシート

while ループは、条件が True である限り実行されます:

while condition:
    code

条件を作成するには、比較演算子を使用します:==, <, >, <=, >=
各反復で変数を更新するには、累積代入演算子を使用します:+=, -=, *=, /=

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2  # 無限ループを避けるために変数を更新する

print(power_of_two)  # 32

自分で試してみよう

quiz icon腕試し

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

Fundamentalsのすべてのレッスン