プログラミング初心者がよく迷うのが「ループを抜けたいときに break を使うのか、それとも return を使うのか?」という点です。両者の違いを、かみ砕いて例題で説明します。
基本の違い
break→ 「いま書いているループ」だけを終了する。外側の処理は続く。return→ 「関数全体」を終了する。関数の外へ結果を返して処理を止める。
👉 つまり、スコープ(どこまで止めるか)が違うのがポイントです。
例題1: リストから最初の偶数を探す
break を使う場合
numbers = [3, 7, 11, 18, 21]
for n in numbers:
if n % 2 == 0:
print("最初の偶数:", n)
break # ループだけ終了
print("ループの後も処理は続く")
Python- 動き: 偶数を見つけたらループを止めるが、その後の処理は続く。
- 用途: 「ループだけ止めたい」場面に向いている。
return を使う場合(関数化)
def find_first_even(numbers):
for n in numbers:
if n % 2 == 0:
return n # 関数ごと終了して結果を返す
return None # 見つからなかった場合
result = find_first_even([3, 7, 11, 18, 21])
print("最初の偶数:", result)
Python- 動き: 偶数を見つけたら関数全体を終了し、結果を返す。
- 用途: 「見つかったら処理全体を終えたい」場面に向いている。
例題2: ネストしたループでの違い
break の場合(内側だけ止まる)
grid = [[1, 2, 3], [4, 5, 6]]
for row in grid:
for x in row:
if x % 2 == 0:
print("偶数を見つけた:", x)
break # 内側のループだけ終了
print("次の行へ進む")
Python👉 偶数を見つけても「外側のループ」は続く。
return の場合(関数全体を止める)
def find_first_even_in_grid(grid):
for row in grid:
for x in row:
if x % 2 == 0:
return x # 関数全体を終了
return None
result = find_first_even_in_grid([[1, 2, 3], [4, 5, 6]])
print("最初の偶数:", result)
Python👉 偶数を見つけたら「外側のループ」も含めて処理全体を終了。
まとめ
break→ ループだけ止めたいとき。処理は続けたい。return→ 関数全体を止めたいとき。結果を返して終了。- 初心者への指針:
- スクリプト直書きなら
breakが分かりやすい。 - 関数にまとめるなら
returnの方が意図が明確で再利用もしやすい。
- スクリプト直書きなら
💡 練習課題として「リストから最初の3の倍数を探す」を break と return の両方で書いてみると、違いがさらに理解できます。
