前回までは繰り返し処理の代表的な構文である、for文とwhile文について解説していきました。今回では今までの書き方といったものと違って繰り返し処理中に記載できる処理の一つのcontinue文について解説いたします。
continue文とは
continue文とは繰り返し処理の中で記述できる文であり、continue文が読み込まれるとそのループは一度スキップされ次のループに入ります。例えば、for文の中にif文を記述し3の倍数の場合continue文を読み込む処理があったとします。
1 2 3 4 |
for num in range(1,10): if num % 3 == 0 : continue print("現在値は" + str(num) + "です。") |
上記の場合は”num”の中の数値が3の倍数であればスキップされ次のループに入っていることがわかると思います。そのため、出力されるのは3の倍数の以外の数値になっています。これがcontinue文です。

break文とは
break文とは同じく繰り返し処理の中で記述できる文であり、break文が読み込まれるとそのループ自体の処理が強制終了されループそのものを抜けます。例えば、for文の中にif文を記述し3の倍数の場合break文を読み込む処理があったとします。
1 2 3 4 |
for num in range(1,10): if num % 3 == 0 : break print("現在値は" + str(num) + "です。") |
上記の場合は”num”の中の数値が3の倍数であれば強制終了されループ自体を抜けます。そのため、最初の2回文のループだけ実行され1と2のみ出力されることがわかると思います。これがbreak文です。

continue文とbreak文の違いについて
上記の内容を見ていただければわかると思いますがcontinue文はその時のループの処理だけをスキップするのに対してbreak文はループのそのものを終えるという違いがあります。例えば、ゲームの中で操作キャラの命がついえたとしても次のゲームへとcontinueすることができますが、我々のような生きとし生けるものの命がついえてしまったらそこで人生はbreakするしかないのです。2週目は存在しません、悲しいですね。

要するにループ処理を続けられるものが文字通りcontinueで、読み込んでしまったら終了してしまうのがbreak文です。
それぞれを使用した繰り返し処理の例
それでは最後に、両方を使用した文を考えてみます。
自分が予め作成した数値の配列とその時にランダムに生成された数値を見比べて3回連続で同じ数字だったらビンゴになるというゲームみたいなプログラムを作ってみました。実行したり、自分で値や処理をいじって遊んでみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import random #ここに自分で数字の配列を定義(ビンゴカードてきなもの) numlist = [2,3,1] count = 0 while True : count += 1 print(str(count) + "回目の挑戦です。") #ランダムに数値を生成 randomnum = random.randint(1,3) if numlist[0] == randomnum : print("1ヒット!") else : print("残念。") continue randomnum = random.randint(1,3) if numlist[1] == randomnum : print("リーチ!") else : print("おしい!") continue randomnum = random.randint(1,3) if numlist[1] == randomnum : print("ビンゴ!") break else : print("もうちょっとだったのに…") continue print(str(count) + "回目の挑戦でビンゴ達成!") |
上記では今まで出てこなかったランダム関数というのを使っています。ランダム関数については以下をご確認ください。

上記のコードでは使用すべきではないと前回記載した無限ループで処理を実行しておりますが、これはbreak文を使うことで有用な処理として使用できているということがわかると思います。ただし、上記のコードでは天文学的数値ではありますが、超低確率で永遠と無限ループが抜けられない可能性がありますので、conunt変数が例えば100回に達したら強制的に終了させるという処理にするということも考えられるとよいです。
またそのほかに処理中の数値がどのような値を取っているかわからないとか、ループが多すぎて出力内容が見づらいとかあって改善の余地はまだまだあると思いますのでその辺は上記のコードを使ってご自身で実装してみるとプログラムを考える力が養えると思います。
break文とcontinue文についてはいかがでしたでしょうか。繰り返し処理の肝になるものだと思いますので、いろんなプログラムを作ってみて使用感を覚えてみるとよいでしょう。
今回はここまでです。
お疲れ様でした。
コメント