ロジカ式logo

はじめての
Python

ページ一覧に戻る
Lesson15 breakとcontinue
ロボた

何度でも同じ処理をしてくれる「繰り返し」は便利なんだけど、繰り返す回数が多くなるとプログラムが終了するのに長い時間がかかってしまうことがあるんだ!

それで、「繰り返し」を制御するための「breakブレイクcontinueコンティニュー」の使い方を教えてあげるね!

ロボち

break

ロボた

たくさんのデータが入っているリストの中に、条件に一致するものが一つしかないとき、もし繰り返しの一回目で一致するものが見つかったなら、その後の繰り返しは無駄だよね!

リストの中のデータが少しなら問題ないけど、リストの中に数万のデータが入っていることもよくあるんだ!

ロボち
ロボた

無駄な繰り返しをしないように、繰り返しを途中で中断できたら便利だよね!

繰り返しを途中で中断したいときには、「break」を使うといいんだよ!

ロボち
目が回ったので、繰り返しを中断する

基本型

break

break 基本型

使い方の例

📝1
100回の繰り返しの途中で、カウント変数が25になったら繰り返しを中断するプログラムです。

EXAMPLE
for i in range(100): print(i) if i == 25: break
ロボた

繰り返す回数は「100」を指定しているけど!

3行目のif文で、もしカウント変数が「25」になったなら、4行目の「break」が実行されて、繰り返しを中断するようになっているんだね。

ロボち

📝2
リストの中に、「25」が見つかったら繰り返しを中断するプログラムです。

EXAMPLE
num_list = [32, 19, 93, 41, 25, 75, 67, 88, 1, 58] for num in num_list: print(num) if num == 25: break
ロボた

リストの中の数値を順番に取り出して!

5行目のif文で、もしリストの中の値が「25」だったら、6行目の「break」が実行されて、繰り返しを中断するようになっているんだね!

ロボち

やってみよう

⌨️1
1円から初めて、繰り返しのたびにお金を2倍にしていき、1億円を超えたら繰り返しを中断するプログラムを作ってください。

PRACTICE

📖 解答例と解説

money = 1

while True:
    print(money, "円")
    if money > 100000000:
        break
    money *= 2
ロボた

何回繰り返すかわからないから「while」を使っているよ!

while文の条件式をTrueにすると、条件が常にTrueになるよね!

ロボち
ロボた

while True:
   処理1
のようにすると、処理1がずっと繰り返されるんだ!だから繰り返しを途中で中断するために「break」を使うよ!

2倍にするときのやり方を、覚えていたかな?
それと、繰り返しの中のどこで「break」するのがいいか、よ~く考えるようにしてね!

ロボち

continue

ロボた

「continue」は、繰り返しの中で、ある条件のときには処理を実行しないで飛ばしたい、というときに使うんだ!

わかりにくいと思うけど、参考例を見てどういう意味なのか理解するようにしてね!

ロボち
ブランコを飛ばして、次に進む

基本型

continue

リスト

使い方の例

📝1
50回繰り返す繰り返しで、カウント変数の値を順に表示しながら、偶数なら飛ばして表示しないようにするプログラムです。

EXAMPLE
for i in range(50): if i % 2 == 0: continue print(i)
ロボた

偶数が表示されていないのを確認してね!

2行目のif文で、もしカウント変数が「偶数」なら、3行目の「continue」が実行されて、これより下の4行目のプログラムは飛ばされて、繰り返しの頭に戻っているんだ!

ロボち
ロボた

そして、次の繰り返しの頭から、また実行されるようになっているんだよ!

「continue」を使う機会はあまりないかもしれないけど、覚えておいてね!

ロボち

やってみよう

⌨️1
50回繰り返す繰り返しで、カウント変数の値を順に表示しながら、カウント変数の値が3の倍数のときには飛ばして表示しないようにするプログラムを作ってください。

PRACTICE

📖 解答例と解説

for i in range(50):
    if i % 3 == 0:
        continue
    print(i)
ロボた

繰り返しの中のif文で3の倍数かどうかを判断し、もし3の倍数でないなら「print( )」で数を表示するけれど!

もし3の倍数だったときには、if文より下のプログラムは実行されないで次の繰り返しの頭に飛ぶので、3の倍数だけ表示されないんだ!

ロボち
POINT
  •   無駄な繰り返しをしないように、繰り返しを中断するときは「break」を使う。
  •   繰り返しの中で、ある条件のときに処理を実行しないで飛ばしたいというときは「continue」を使う。