Python | 「break」と「return」を比較する例

Python
スポンサーリンク

プログラミング初心者がよく迷うのが「ループを抜けたいときに 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の倍数を探す」を breakreturn の両方で書いてみると、違いがさらに理解できます。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました