プログラミング

Pythonのwhileループ完全ガイド

Pythonでのwhileループは、繰り返し処理を行うための基本的な制御構造の一つです。whileループは、指定した条件がTrueである限り繰り返し実行され、条件がFalseになった時点でループが終了します。この記事では、Python 3におけるwhileループの使用方法について、基本から応用まで詳しく解説します。

1. whileループの基本構文

whileループの基本的な構文は次のようになります。

python
while 条件式: # 実行するコードブロック

この構文では、条件式Trueである限り、インデントされたコードブロックが繰り返し実行されます。条件式Falseになると、ループは終了し、次の処理に移ります。

2. 基本的な例:カウントダウン

次のコードは、whileループを使用して1から5までカウントアップする簡単な例です。

python
count = 1 while count <= 5: print(count) count += 1

実行結果は以下の通りです。

1 2 3 4 5

このプログラムでは、countの値が5以下である限り、print(count)が繰り返し実行されます。count += 1によって、countの値が1ずつ増加し、最終的にcountが6になるとwhileループは終了します。

3. whileループの終了条件

whileループの終了は、条件式がFalseになることで自動的に行われますが、手動でループを終了させる方法もあります。これには、break文を使用します。

例: breakを使ってループを途中で終了

次のコードは、whileループ内でbreak文を使用して特定の条件でループを終了する例です。

python
count = 1 while count <= 5: print(count) if count == 3: break count += 1

実行結果:

1 2 3

この例では、countが3に達した時点でbreak文が実行され、whileループが終了します。breakはループを強制的に終了させるため、条件に関係なく処理が終わります。

4. 無限ループとその防止

whileループの条件が常にTrueであると、ループは無限に繰り返し実行されます。これは意図的に無限ループを作成したい場合に有用ですが、通常は終了条件を設定することが重要です。

例: 無限ループの作成

python
while True: print("このメッセージは無限に表示されます")

このコードは、永遠に"このメッセージは無限に表示されます"というメッセージを表示し続けます。無限ループから抜け出すには、break文を使用します。

python
while True: user_input = input("終了するには'q'を入力してください: ") if user_input == 'q': break print(f"あなたが入力した内容: {user_input}")

このプログラムは、ユーザーが'q'を入力するまで無限に実行され、入力された内容を表示し続けます。

5. elsewhileループ

Pythonのwhileループにはelse句を追加することができます。else句は、whileループが正常に終了した場合にのみ実行されます。条件がFalseになった時にループが終了した場合に、elseが実行されます。ただし、breakによってループが強制終了された場合、elseは実行されません。

例: elsewhileループの組み合わせ

python
count = 1 while count <= 5: print(count) count += 1 else: print("ループが正常に終了しました")

実行結果:

1 2 3 4 5 ループが正常に終了しました

この例では、whileループがcountが5に達すると終了し、その後else句が実行されます。

6. whileループの応用例

例1: ユーザーの入力を検証する

ユーザーから正しい入力を受け取るために、whileループを使って入力を繰り返し要求することができます。

python
while True: user_input = input("数字を入力してください: ") if user_input.isdigit(): print(f"入力された数字は: {user_input}") break else: print("無効な入力です。再度入力してください。")

このコードでは、ユーザーが数字を入力するまでループが続きます。isdigit()メソッドを使って、入力が数字かどうかを確認しています。

例2: フィボナッチ数列の生成

whileループを使ってフィボナッチ数列を生成することもできます。フィボナッチ数列は、最初の二つの数が0と1で、その後の数は前の二つの数の合計で構成されます。

python
a, b = 0, 1 while a < 100: print(a, end=' ') a, b = b, a + b

実行結果:

0 1 1 2 3 5 8 13 21 34 55 89

このコードでは、abを使ってフィボナッチ数列を計算し、100未満の数を順番に表示します。

7. whileループを使った効率的なプログラミング

whileループは、繰り返し処理が必要な場合に非常に便利なツールですが、条件式を適切に設定しないと無限ループに陥る可能性があります。ループを使用する際は、必ず終了条件を正しく設定し、無限ループにならないように注意することが大切です。

また、breakcontinueを使うことで、ループ内での処理を柔軟に制御することができます。continueは、ループの残りの部分をスキップして次の繰り返しを開始するために使用されます。

例: continueを使った処理

python
for i in range(10): if i % 2 == 0: continue # 偶数をスキップ print(i)

実行結果:

1 3 5 7 9

この例では、continueによって偶数をスキップし、奇数のみを表示しています。

結論

whileループは、条件が満たされている限り繰り返し処理を行うための強力なツールです。基本的な使い方から、breakcontinueelse句を組み合わせた応用的な使い方まで、さまざまな方法で活用できます。条件式を適切に設定し、無限ループに注意しながら効率的にプログラムを作成しましょう。

Back to top button