• WebCampPro_インタビュー
    未経験31歳からエンジニア転職を実現【実際に聞いてみた】
    2017.04.01
  • WebCamp_インタビュー
    「1カ月頑張ればこの先が見えてくる」地元メディアを立ち上げたママさん
    2017.07.20
  • WebCamp_インタビュー
    「自信の持てるスキルを得たい!」内定辞退した女子大生がプログラミングを学習したワケ。
    2018.04.28
  • WebCampPro_インタビュー
    未経験でも寿司職人からWebデザイナーになった!ホスピタリティでスクールを支える宮脇トレーナー
    2017.05.26
  • WebCamp_インタビュー
    【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!
    2018.01.15
  • WebCampPro_インタビュー
    自分で稼ぐ力をつけるため、新卒5年目の営業マンがエンジニアに転職!【WebCampPro転職者インタビュー】
    2018.02.02
  • WebCamp_インタビュー
    時間や場所にとらわれず自由に働くために必要なスキルとは?【WebCamp卒業生インタビュー】
    2018.01.26
  • WebCamp_インタビュー
    【卒業生インタビュー】台湾で月間100万UUの訪日旅行メディアを手掛けるCEOが、プログラミングを学んで得たものとは?
    2018.01.15
  • WebCamp_インタビュー
    “未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
    2017.10.04
  • WebCampPro_インタビュー
    未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】
    2018.03.10
  • WebCamp_インタビュー
    【WebCamp受講生インタビュー】起業準備中にCEOが気がついたプログラミングスキルの重要性とは?
    2017.12.25

◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

Web Camp【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でWebサービス等作りたい方
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WebCampPro転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアを3ヶ月で目指すプログラミングスクールです。

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!


Pythonを始めとするプログラミング言語では、繰り返し処理を行うループ処理があります。

Pythonでもfor文とwhile文の2種類の代表的なループ処理があり、ループ処理を抜ける為の処理が用意されています。

今回はループ処理を抜ける為のbreakについて、詳しく解説していきます。

ループを抜けるbreakとは

冒頭でも少し触れましたが、Pythonの繰り返し処理から抜けるには、breakを使用します。

break処理が行われることによって、for文またはwhile文の処理のブロックから抜けることが出来ます。

break後のループ処理は全て無視されます。

ループ処理をどこまでで止めるか指定する

ループ処理を止めるbreakですが、使用する重要なポイントはプログラマーがどこでループ処理を止めるかを考えて、break処理を入れることです。

また決まったループ処理だけではなく、無限ループになってしまう可能性がある場合もbreak処理を入れることもあります。

breakの基本的な記述方法について

breakはfor文またはwhile文の繰り返し処理の中でif文とセットで使われることが多いです。

breakを使用する基本的な記述方法は、下記になります。

 


while 条件式:

#処理を中断する条件を分岐

    if 条件式:

        break

     while文で実行する繰り返し処理

基本的な記述方法では、while文を例にしましたが、for文でも基本的には同じでループ処理の中でif文で条件を分岐してbreakを入れてループ処理を抜けます。

breakの使用例

それでは実際にbreakの使用例について、ご紹介します。


#whileの条件判定に使用する変数を準備

while_count = 1

#while文でループ処理を実行

while while_count <= 10:

    #ループ処理で特定の値でbreakする

    if while_count == 6:

        print("ループ処理を抜けます。")

        break

    print("ループ回数:" + str(while_count) + "回目"

    while_count = while_count + 1

#実行結果

ループ回数:1回目
ループ回数:2回目
ループ回数:3回目
ループ回数:4回目
ループ回数:5回目
ループ処理を抜けます。

実行結果からわかるように、if文の条件分岐によってwhile_countが6でbreak処理が実行されていることがわかります。

ループ処理のブロックから抜けている為、6以降のprint出力がされていません。

breakとcontinueの違いとは

breakとよく比較されることが多いのが、continueです。

continueもループ処理の中で使用されますが、breakとの大きな違いはbreakがループ処理のブロックから抜けるのに対して、continueはループ処理から抜け出すのではなく、ループ処理の先頭に戻って継続する機能になります。

つまり、continueはループ処理をスキップするイメージで、breakはループ処理を止めるイメージです。

continueとbreakの違い使用例

continueとbreakの違いがわかる使用例について、ご紹介します。

上述した「breakの使用例」でご紹介したコードをベースにbreakからcontinueに変更して、その違いを見て頂きます。

都合上初期値などが少し変わりますので、変更点に関しましては、#のメモをご参照ください。


#whileの条件判定に使用する変数を準備

#初期値を変更

#while_count = 1

while_count = 0

#while文でループ処理を実行

#カウント増加位置変更により条件式を変更

#while while_count <= 10: ←上記break例のときのコード
while while_count < 10:

#カウント増加位置変更

    while_count = while_count + 1

#ループ処理で特定の値でcontinueする

    if while_count == 6:

        '''

        print("ループ処理を抜けます。")

        break

        breakからcontinueに変更

        '''

        continue

    print("ループ回数:" + str(while_count) + "回目"

    #無限ループを回避する為、位置変更

    #while_count = while_count + 1

#実行結果

ループ回数:1回目
ループ回数:2回目
ループ回数:3回目
ループ回数:4回目
ループ回数:5回目
ループ回数:7回目
ループ回数:8回目
ループ回数:9回目
ループ回数:10回目

実行結果からbreakの時には「ループ回数:6回目」以降は出力されることはありませんでしたが、continueの場合は現在の繰り返しを先頭に戻す処理の為、「ループ回数:6回目」だけが出力されずに「ループ回数:7回目」以降は出力されます。

またbreakの場合は、無限ループにならない場合もcontinueでは無限ループになってしまう可能性がある為、切り替える場合は注意が必要です。

今回の例の場合、while_count = while_count + 1がcontinueの後にあった場合、6に永遠に1が足されず、ループとなってしまいます。

2重などの多重ループを抜ける

Pythonではループ処理の中でループ処理が入れ子されている2重ループや多重ループの場合、一気に抜け出す方法がありません。

その為、必要に応じてbreakをループ分準備しなければ抜け出すことができません。

2重ループを抜ける記述方法

2重ループなどの多重ループを抜ける場合の基本的な記述方法は、下記になります。


for 変数 in range():

    for 変数 in range():

        if 抜け出す為の条件式:

        break

    break

上記のようにループ処理の数に合わせてbreakをすることで、一気に抜け出すことができます。

2重ループを抜ける使用例

breakで2重ループを抜ける場合の使用例は、下記になります。


#親ループ

for tmp in range(10):

#子ループ

    for tmp2 in range(10):

        #ループ回数がわかるように出力
        print(tmp,tmp2)

        #子ループのカウントが5になるとbreakで抜ける
        if tmp2==5:
            print("子ループから抜ける")
            break

    #子ループから抜けて親ループから抜ける為のbreak
    print("親ループから抜ける")
    break

#実行結果
0 0
0 1
0 2
0 3
0 4
0 5
子ループから抜ける
親ループから抜ける

実行結果から子ループをbreakで抜け出し、親ループもbreakで抜け出せていることがわかります。

もし親ループ側のbreakがなければ、子ループが0~5までの出力を親ループ回数分出力することになってしまいます。

 

break以外のループを終了させる方法について

break以外にもPythonにはループを抜け出す方法はいくつかあります。

詳細については、割愛しますが、主な動作と使用例についてそれぞれ解説をしていきます。

returnついて

returnは自作した関数から値を返す場合に使用されます。

特性上returnで値を返した後はそれ以降の関数の処理は終了する為、ループ内で使用する場合は関数ごと終了するのでループ処理が終了することになります。

outsideエラーについて

returnは関数内でしか使用できないことは、ご説明しましたが、もし関数内以外で使用した場合は、outsideエラーになってしまいます。

outsideエラーが発生した場合は、関数内でreturnを使用しているか確認することをおすすめします。

returnの使用例

関数内でループ処理を抜ける為にreturnを使用する場合の使用例は、以下になります。


#関数を宣言

def sample():

    #for文の繰り返し処理
    for tmp in range(10):

        #if文で条件分岐をしてreturnで返す
        if tmp==5:
            return
        print(tmp)

上記使用例の関数を呼び出すことで、tmpが5のタイミングでreturnで関数が終了する為、ループ処理もその時に終了することになります。

 

exitについて

sysライブラリのexitを使用するとプログラムを終了させることが出来ます。

ループ処理だけを終了させる訳ではありませんが、エラーが発生した場合など正しく処理が出来ない場合はexitでループ処理を終了するようにコーディングする場合があります。

exitの使用例


#sysライブラリのインポート

import sys

#繰り返し処理
for tmp in range(5):

#3度目の処理でプログラムを終了させる

    if tmp == 3:
        print("終了します")
        sys.exit()
    print(str(tmp + 1) + "回実行しました")

#実行結果

1回実行しました
2回実行しました
3回実行しました
終了します

実行結果からループ処理が終了したことがわかります。

しかしこれはbreakと違ってループ処理だけでなく、プログラム自体を終了させる為、注意が必要です。

例外処理tryについて

詳細は別の機会のご紹介しますが、例外処理のtryを使用することでもループ処理から抜け出すことが可能です。

しかし無限ループなどに対応する場合は、意図的にエラーを発生させるraiseと合わせて使用することになります。

例外処理について、学習が終了した方は腕試しも兼ねてループ処理を抜ける為の例外処理にチャレンジして頂ければと思います。

まとめ

今回はPythonのループ処理から抜け出すbreakについて、解説をしてきましたが、いかがでしたか。

for文やwhile文のループ処理をプログラミングで実装する場合、必ずと言って良いほどbreakは必要になるので確実に習得することをおすすめします。

またbreak以外のループ処理を抜ける方法についても、習得し、その時々にあった対応を行えるようになることが重要です。

WebCamp・WebCamp Proについて

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。WebCamp Proは3ヶ月間で未経験から即戦力エンジニアを育成するプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

11月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
10月受入枠は満員となっております。11月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

関連キーワード
pythonの関連記事
  • 【python入門者必見!】print関数の基礎から徹底解説
  • 【python超入門】WebサイトでPython学習のすすめ
  • 【python入門者向け】おすすめPDF教材3選
  • 【python入門者向け】おすすめの学習方法
  • 【Python入門】MacでPythonをはじめるまで
  • 【python入門者必見!】1からわかるrange関数の徹底解説
おすすめの記事
Infratop
こんにちは。インフラトップの大島です。 17日(土)にわたしの母校である茨城県立日立第一高等学校で約80名の高校一年生に向けて「スタートアッ...
キャリア
IT企業に長い期間務めて方のほとんどが、時折自分の市場価値や実力を試したくなるときがあるといいます。 その場合、今自分が務めている会社より大...