第9章 繰り返し処理
9.4 break文とcontinue文
プログラムを作成していくなかで、for文やwhile文などの繰り返しの流れを「強制的に」変更したい場合がでてくるかもしれません。このような場合に使用するのがbreak文とcontinue文です。
9.4.1 break文
break文をループ処理で使用すると、「ループ処理を抜ける」働きになります。
ループ処理でのbreak文は、主にif文と組み合わせて使用されます。
書式:breakの基本的な使い方
if文の条件判断で、もし条件が一致していたらbreakが処理され、forやwhileのループを抜けます。
フローチャートで表すと、図 9.4.1.1のようになります。
図 9.4.1.1 : break文を含むfor文のフローチャート
9.4.2 break文でwhile文の終了を制御するプログラム
無限ループのwhile文の処理にキーボード入力を含み、入力された値によりbreak文でループを抜けるプログラムを作成します。
ソース・フォルダ:/Desktop/Python入門テキスト
ファイル名 :第9章.ipynb
アクセスURL :http://localhost:8888/notebooks/Desktop/Python入門テキスト/第9章.ipynb
➢ 第9章.ipynb/ 9.4.2 break文でwhile文の終了を制御するプログラム
num = 0; while num < 5 : if num == 3: break print(num) num += 1
実行結果
解説
1行目でnumの宣言を行っています。
3~7行目はwhile文です。
通常であればnumの値が5になるまでの間、4~7行目までの処理が実行されますが、4、5行目でbreak文が設けられているため、numの値が3と等しくなるとwhile文から抜ける内容となっています。
そのためnumが3以下の場合に限り、numの値の出力(6行目)、numの値が1増えるインクリメント(7行目)が繰り返されます。
1行目でnumの宣言を行っています。
break文がなければ0、1、2、3、4が出力されるところ、num=3になった途端にwhile文が終了するため0、1、2しか表示されません。
図 9.4.2.1 : BreakStatementのフローチャート
ポイント・ループを中断して終了するにはbreak文を使う。
9.4.3 continue文
break文が処理を中断してループ処理を抜けるのに対して、continue文は後の処理をスキップして元のループ文の先頭に戻り、処理を続行します。
break文とcontinue文の違いをフローチャートで表すと、図 9.4.3.1のようになります。
図 9.4.3.1 : break文とcontinue文の処理の違い
continue文も、主にif文と組み合わせて使用されます。
continue文の基本的な使い方は下記のとおりです。
書式:continue文の基本的な使い方
break文同様、continue文もwhile文でも使用することができます。
if文の条件判断で、もし条件が一致していたらcontinue文が処理され、forループの最初に戻ります。
<for文の場合>
<while文の場合>
フローチャートは以下の通りになります。
図 9.4.3.2 : continue文を含むfor文のフローチャート
フローチャートを見ると、continueが実行されると、内部処理のみを飛ばして続きのwhile文に戻っていきます。
continueを使ったサンプルプログラムは少し複雑な内容になるため入門では紹介致しませんが、break文とcontinue文を上手に利用すれば、ループ処理内容を分り易い内容にまとめることができます。状況に応じて使えるように覚えておきましょう。
9.4.4 continue文を使用するプログラム
続いてcontinue文を使用したプログラムを確認していきましょう。
ソース・フォルダ:/Desktop/Python入門テキスト
ファイル名 :第9章.ipynb
アクセスURL :http://localhost:8888/notebooks/Desktop/Python入門テキスト/第9章.ipynb
➢ 第9章.ipynb/ 9.4.4 continue文を使用するプログラム
num = 0; while num < 5 : if num == 3: num += 1 continue print(num) num += 1
実行結果
解説
1行目でnumの宣言を行っています。
3~7行目は、while文です。
通常であればnumの値が5になるまでの間、numの値(7行目)が出力され、出力が完了すると、numの値が1増えるインクリメント(8行目)し、次のnumの値が出力されるはずですが、4~6行目でcontinue文を実行するためのif文が設けられています。
numの値が3と等しくなると4行目の条件式を満たすため、numの値が1増え(5行目)、continue(6行目)が実行されるため、7、8行目の処理は実行されれませんが、再び3行目に戻り、while文の処理(3~8行目)が継続されます。
continue文がなければ0、1、2、3、4が出力されるところ、3だけ出力されず、0、1、2、4が出力されました。
図 9.4.4.1 : while文を介したContinueStatementのフローチャート
ポイントループ文内でcontinue文が実行されると、continue文以降の処理をスキップしてループの先頭に戻ります。