Aerial view of a man using computer laptop on wooden table
Pythonでの繰り返し処理は、データを扱ううえで欠かせない基本技術です。中でもfor
文とbreak
文は、処理の流れを柔軟にコントロールする重要な要素です。
この記事では、for
文の基本的な書き方から、break
文を使ってループを途中で終了する方法、さらに実践的な使い方までをわかりやすく解説します。Python初心者はもちろん、もう一度基礎を固めたい方にもおすすめの内容です。
Pythonのfor
文は、「リスト」「タプル」「文字列」などの**反復可能オブジェクト(イテラブル)**を順番に取り出して処理を繰り返す構文です。
for 変数 in イテラブル:
処理
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
print(fruit)
この例では、fruits
リストの要素を1つずつ取り出して、print()
関数で表示しています。
数値の繰り返しには、range()
関数と組み合わせて使うのが一般的です。
for i in range(5):
print(i)
この場合、0〜4までの整数が順番に出力されます。
break
文は、ループ処理を強制的に終了するための制御文です。
特定の条件を満たした場合にbreak
を使うことで、ループの無駄な繰り返しを防げます。
for 要素 in イテラブル:
if 条件:
break
処理
fruits = ['apple', 'banana', 'stop', 'orange']
for fruit in fruits:
if fruit == 'stop':
break
print(fruit)
出力:
apple
banana
'stop'
が出たところでbreak
され、ループが終了します。
実際のプログラムでは、for
とbreak
を組み合わせて次のような目的で使われます。
numbers = [2, 4, 6, 7, 8]
for num in numbers:
if num % 2 != 0:
print(f"最初の奇数は {num} です")
break
このコードはリストから最初に出てくる奇数を見つけて、処理を終了します。
膨大なデータを扱うとき、条件に合った最初のデータだけを処理すればいい場合があります。break
を使うことで、それ以降の無駄なループをカットでき、パフォーマンス向上に繋がります。
便利なbreak
ですが、使いすぎるとコードの可読性が落ちることもあります。以下の点に注意しましょう。
break
の条件が分かりづらいと、なぜそこでループを抜けるのかが分かりにくくなります。コメントを入れる、関数化するなどの工夫が必要です。
あまりにも複雑な条件分岐と併用すると、エラーの原因になります。なるべくシンプルな条件で制御するのがポイントです。
Pythonのfor
文には、else節を使うことができます。これは、ループがbreakされずに正常に終了したときだけ実行されるものです。
words = ['apple', 'banana', 'grape']
for word in words:
if word == 'orange':
print("見つかりました")
break
else:
print("オレンジは見つかりませんでした")
出力:
オレンジは見つかりませんでした
このように、検索成功/失敗の結果表示に役立ちます。
ループが2重以上の入れ子構造になっているとき、break
は内側のループしか終了させません。すべてのループを一度に終了したい場合はフラグ変数や関数化で対応します。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
found = False
for row in matrix:
for val in row:
if val == 5:
print("5が見つかりました")
found = True
break
if found:
break
for
文は、リストなどの要素を順に処理する繰り返し構文break
文は、ループを条件付きで途中終了する制御文for + break
で「最初に見つけたら終了」という効率的な処理が可能else
節との併用で、処理結果を明確に表現できるbreak
は1つのループしか終了しない点に注意