⚠️ 記事内に広告を含みます。

pythonでfor構文のcontinueとbreakの使い方

pythonのfor文でcontinueとbreakの使い方

forでループにもどるcontinueとループを抜けるbreakの使い方を紹介

forのconitnueとbreakの使い方

for文はpython以外のプログラミング言語にも存在する繰り返し処理です。

for構文をつかって繰り返し処理を行う方法pythonでfor構文をつかって繰り返し処理をする方法 dict, list, JSON, csv range

forの繰り返し処理の途中で「ある処理の場合は抜ける」としたい場合にはbreakやcontinueを使います。

  • continue
    • 以降の処理をスキップして次のループへ
  • break
    • forループを終了

実際の例です。

def main(): #3の倍数以外の数を表示する関数mainを定義
## 変数定義
    sum_non3 = 0  #3の倍数以外の個数をカウントする変数
    sum_continues = 0  #3の倍数の個数
    sum = 0   #3の倍数以外の数の合計を計算する変数

## for文
    for i in range(1, 101):
        if i % 3 == 0: # 3の倍数のときcontinue
            sum_continues += 1  #3の倍数の個数をカウント
            continue # 3の倍数のときは処理をスキップして次のループに移る
        if i == 50:    # 50のとき
            break      # 50のときはbreakしてforループを抜ける
        sum_non3 += 1  #49までの3の倍数以外の個数をカウント
        sum += i       #49までの3の倍数以外の数の合計を計算
        
    print(f'49までの3の倍数以外の数の個数は{sum_non3}個です。')
    print(f'3の倍数の数の個数は{sum_continues}個です。')
    print(f'49までの3の倍数以外の数の合計は{sum}です。')

main()

実行結果

3の倍数以外の数の個数は33個です。
3の倍数の数の個数は16個です。
3の倍数以外の数の合計は817です。

continueとbreakを使った例

大量の名前と年収がのっているtest2.csvがあります。

> cat test2.csv
name,nensyu
Taro,10000000
saghgashira,6000000
suzukigawa,4800000
sannomiya,2300000
yamaghiwa,1800000

このcsvはnensyuの項目で降順に並び替えています。
年収が500万円以上人の人数を数えるプログラムを作成します。

import csv # csvモジュールをインポート

csv_file = open('test2.csv', 'r')  #同じディレクトリにあるtest3.csvを開く
csv_reader = csv.DictReader(csv_file)  #csvファイルを辞書型に変換
sum_500more_man  = 0

for row in csv_reader:   #csv_readerの中身をrowに代入
    if int(row['nensyu']) >= 5000000: #nensyuの値が500万以上のとき
        sum_500more_man += 1  #500万以上の年収の人の数をカウント
        continue    #500万以上の年収の人の数をカウントして次のループに移る
    if int(row['nensyu']) < 5000000:   #nensyuの値が500万未満のとき
        break #forループを抜ける

print(f"年収が500万以上は{sum_500more_man}人です。") 

実行結果

年収が500万以上は2人です。

このプログラムはbreakしなくても同じ結果が得られますが、すべてのnesyuの値をチェックする必要があります。
CSVのnensyuを降順で並び替えておくという前提ですが、500万未満の人は数えない(forループを抜ける)ことで計算量が少なくなるメリットがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です