[Python] while文でcontinueを使う
Pythonのwhile文は、条件が真である限りループを繰り返す制御構造です。
このループ内でcontinue文を使用すると、現在の反復をスキップし、次の反復に進むことができます。
例えば、特定の条件を満たす場合に処理をスキップしたいときに便利です。
これにより、無駄な処理を避け、効率的なコードを書くことが可能になります。
ただし、continueを使う際は、無限ループに陥らないように注意が必要です。
while文でcontinueを使う具体例
基本的な使用例
while文でcontinueを使う基本的な例を見てみましょう。
continueはループ内で特定の条件が満たされたときに、残りの処理をスキップして次のループに進むために使用されます。
# 1から5までの数字をループし、3のときはスキップする
i = 1
while i <= 5:
    if i == 3:
        i += 1
        continue
    print(i)
    i += 11
2
4
5この例では、iが3のときにcontinueが実行され、print(i)がスキップされます。
その結果、3は出力されません。
条件に基づくcontinueの使用
continueを条件に基づいて使用することで、特定の条件を満たす場合にのみ処理をスキップすることができます。
# 偶数のみを出力する
i = 0
while i < 10:
    i += 1
    if i % 2 != 0:
        continue
    print(i)2
4
6
8
10この例では、iが奇数の場合にcontinueが実行され、偶数のみが出力されます。
ネストされたループでのcontinueの使用
ネストされたループ内でcontinueを使用することも可能です。
内側のループでcontinueを使うと、内側のループの次の反復に進みます。
# 2次元リストの中で特定の値をスキップする
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
row = 0
while row < len(matrix):
    col = 0
    while col < len(matrix[row]):
        if matrix[row][col] == 5:
            col += 1
            continue
        print(matrix[row][col])
        col += 1
    row += 11
2
3
4
6
7
8
9この例では、matrixの中で値が5のときにcontinueが実行され、その値はスキップされます。
無限ループでのcontinueの使用
無限ループ内でcontinueを使用することもできます。
無限ループは通常、特定の条件が満たされるまで続けるために使用されます。
# ユーザーが0を入力するまで続ける
while True:
    number = int(input("数字を入力してください(0で終了):"))
    if number == 0:
        break
    if number < 0:
        print("負の数はスキップされます")
        continue
    print(f"入力された数字は: {number}")この例では、ユーザーが負の数を入力した場合にcontinueが実行され、その入力はスキップされます。
0を入力するとループが終了します。
while文とcontinueの注意点
while文でcontinueを使用する際には、いくつかの注意点があります。
これらを理解しておくことで、コードの可読性やパフォーマンスを向上させることができます。
continueの使いすぎによる可読性の低下
continueを多用すると、コードの流れが複雑になり、可読性が低下する可能性があります。
特に、複数の条件でcontinueを使用する場合、どの条件でどの処理がスキップされるのかが分かりにくくなることがあります。
- 可読性の低下の例:
i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    if i % 3 == 0:
        continue
    print(i)このコードでは、iが2の倍数または3の倍数のときにcontinueが実行されますが、条件が多くなると理解しにくくなります。
無限ループのリスク
continueを使用する際に、ループの終了条件を適切に管理しないと、無限ループに陥るリスクがあります。
特に、continueによってループ変数の更新がスキップされる場合、ループが終了しないことがあります。
- 無限ループの例:
i = 0
while i < 5:
    if i == 2:
        continue
    print(i)
    i += 1このコードでは、iが2のときにcontinueが実行され、iの更新がスキップされるため、無限ループに陥ります。
break文との違いと使い分け
continueとbreakはどちらもループの制御に使用されますが、その動作は異なります。
continueは現在の反復をスキップして次の反復に進むのに対し、breakはループ全体を終了します。
- 違いの例:
i = 0
while i < 5:
    i += 1
    if i == 3:
        continue
    if i == 4:
        break
    print(i)このコードでは、iが3のときにcontinueが実行され、3はスキップされます。
iが4のときにbreakが実行され、ループが終了します。
- 使い分けのポイント:
- continueは特定の条件で処理をスキップしたい場合に使用します。
- breakは特定の条件でループを完全に終了したい場合に使用します。
これらの注意点を理解し、適切にcontinueを使用することで、より効率的で読みやすいコードを書くことができます。
応用例
continueを活用することで、さまざまな応用的な処理を実現することができます。
ここでは、continueを使ったフィルタリング処理、データのスキップ処理、エラーハンドリングの例を紹介します。
continueを使ったフィルタリング処理
continueを使用して、特定の条件に合致するデータをフィルタリングすることができます。
例えば、リストから特定の条件を満たす要素だけを選び出す場合に有効です。
# リストから偶数のみをフィルタリングする
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = []
i = 0
while i < len(numbers):
    if numbers[i] % 2 != 0:
        i += 1
        continue
    filtered_numbers.append(numbers[i])
    i += 1
print(filtered_numbers)[2, 4, 6, 8, 10]この例では、numbersリストから偶数のみをfiltered_numbersリストに追加しています。
奇数の場合はcontinueでスキップされます。
continueを使ったデータのスキップ処理
データ処理の際に、特定の条件に合致するデータをスキップしたい場合にcontinueを使用することができます。
# リストから特定の値をスキップして出力する
data = ["apple", "banana", "cherry", "date", "elderberry"]
skip_value = "cherry"
i = 0
while i < len(data):
    if data[i] == skip_value:
        i += 1
        continue
    print(data[i])
    i += 1apple
banana
date
elderberryこの例では、dataリストの中で"cherry"をスキップして出力しています。
continueを使ったエラーハンドリング
データ処理中にエラーが発生した場合に、そのエラーを無視して次のデータに進むためにcontinueを使用することができます。
# リストの要素を整数に変換し、エラーが発生した場合はスキップする
data = ["10", "20", "thirty", "40", "fifty"]
converted_data = []
i = 0
while i < len(data):
    try:
        number = int(data[i])
        converted_data.append(number)
    except ValueError:
        print(f"変換エラー: {data[i]} をスキップします")
        i += 1
        continue
    i += 1
print(converted_data)変換エラー: thirty をスキップします
変換エラー: fifty をスキップします
[10, 20, 40]この例では、dataリストの要素を整数に変換し、変換できない要素はエラーメッセージを表示してスキップしています。
continueを使うことで、エラーが発生しても処理を続行できます。
まとめ
while文でのcontinueの使用は、特定の条件で処理をスキップするための便利な方法です。
この記事では、continueの基本的な使い方から応用例、注意点について詳しく解説しました。
これにより、continueを効果的に活用するための知識を得ることができたでしょう。
今後は、実際のプログラミングでcontinueを活用し、コードの効率化と可読性の向上を目指してみてください。
 
![[Python] 「While True:」とは?無限ループの使い方と注意点を解説](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46684.png)
![[Python] for文でのin演算子の使い方 – リストやタプルのループ処理](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46683.png)
![[Python] for文の使い方をわかりやすく解説](https://af-e.net/wp-content/uploads/2024/09/thumbnail-41142.png)
![[Python] for文内のエラーをスキップする](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9093.png)
![[Python] continue文でエラーが起きる原因と対処方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9092.png)
![[Python]  ‘int’ object is not iterableエラーの解消方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9091.png)
![[Python] while文で無限ループを実装する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9090.png)
![[Python] while文を途中で抜ける方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9089.png)
![[Python] while文の条件式の書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9088.png)
![[Python] while文の使い方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9087.png)
![[Python] while文で合計を求める](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9086.png)
![[Python] リストをwhileループで処理する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9085.png)