Swiftのcontinue・breakの使い方と注意点を徹底解説!初心者向け制御構文ガイド
生徒
「Swiftで繰り返し処理の途中でスキップしたり、やめたりする方法ってありますか?」
先生
「いい質問ですね。Swiftにはcontinueとbreakというキーワードがあって、それを使えば処理を途中でスキップしたり終了させたりできますよ。」
生徒
「それって、どういうときに使うんですか?実際に見てみたいです!」
先生
「よし、ではcontinueとbreakの使い方を、具体的な例と一緒に説明していきましょう!」
1. Swiftのcontinueとは?処理をスキップする魔法の言葉
continue(コンティニュー)は、繰り返し処理(ループ)の中で特定の条件のときに、それ以降の処理をスキップして次の繰り返しに進むためのキーワードです。
たとえば、「1から5までの数字を表示するけど、3だけは表示したくない」といった場面に使えます。
下記がcontinueを使った基本的なSwiftのコードです。
for number in 1...5 {
if number == 3 {
continue
}
print(number)
}
このプログラムの実行結果は以下のようになります。
1
2
4
5
このように、number == 3のときだけprintがスキップされ、3は表示されません。
2. Swiftのbreakとは?ループを強制終了する方法
break(ブレイク)は、ループの途中で処理を完全にやめたいときに使うキーワードです。
たとえば、「1から10まで数えるけど、5まで来たらもうループを終了したい」というときに使います。
次のSwiftコードを見てください。
for number in 1...10 {
if number == 6 {
break
}
print(number)
}
このコードを実行すると、次のような出力になります。
1
2
3
4
5
number == 6になった時点でbreakが実行され、forループは完全に終了します。
3. continueとbreakの違いと使い分け
どちらもループの動きを変える便利なキーワードですが、意味はまったく異なります。
- continue:ループ内の「今の1回だけスキップ」して、次の繰り返しに進む
- break:ループを「完全にやめる」
状況に応じて、どちらを使うべきか判断することが大切です。
4. while文でも使える!continueとbreakの応用
これらのキーワードは、for文だけでなく、while文でも使うことができます。
例えば、次のwhileループは、1から無限に数える中で、偶数だけを表示し、10を超えたらループを終了します。
var number = 0
while true {
number += 1
if number % 2 != 0 {
continue
}
if number > 10 {
break
}
print(number)
}
このコードでは、奇数のときはcontinueでスキップされ、偶数だけが表示されます。そして10を超えたらbreakでループが終わります。
5. continueとbreakを使う際の注意点
便利なキーワードですが、使いすぎたり、意図しない場所で使うとバグの原因になります。
- 処理の流れが読みにくくなる:突然スキップされたり終了したりするので、複雑になると理解しづらいです。
- 無限ループに注意:
while文とcontinueの組み合わせで、条件の更新がスキップされると、ループが止まらなくなる危険もあります。 - 1つのループ内で多用しない:可読性が落ちるので、できるだけシンプルに使いましょう。
6. ネストされたループでのbreakとcontinue
ループの中にループがある「ネスト(入れ子)」構造では、breakやcontinueがどのループに影響するか注意が必要です。
Swiftでは、ラベル(label)を使って、どのループに対してbreakやcontinueを適用するか指定できます。
outerLoop: for i in 1...3 {
for j in 1...3 {
if i == 2 && j == 2 {
break outerLoop
}
print("i = \(i), j = \(j)")
}
}
このコードでは、i = 2かつj = 2のときに、外側のouterLoopごと終了します。
7. continueとbreakの使い方
| キーワード | 意味 | 使いどころ |
|---|---|---|
continue |
その回の処理をスキップ | 特定条件のときだけ飛ばす |
break |
ループを強制終了 | ある条件になったら終了する |
まとめ
Swiftの繰り返し処理において欠かせないキーワードであるcontinueとbreakは、ループの流れを柔軟に制御し、意図した動作を実現するために非常に重要です。特にプログラムの規模が大きくなるほど、ループ内での条件分岐や処理の制御が増えるため、各キーワードの役割と使いどころを正しく理解することは、Swiftプログラマーにとって大きな成長ポイントになります。continueは特定の条件を満たす場合に、今その瞬間の処理だけを飛ばして次のサイクルに進む役割を持ちます。breakはループ全体を終了し、以降の処理に進む動きを作り出します。この二つのキーワードは、一見似ているように見えても実際には全く異なる効果を持つため、それぞれを適切に使い分けることでコードの明確さと意図の正確さが大きく向上します。 また、for文だけではなく、while文やrepeat-while文でも利用できるため、繰り返し処理が登場するあらゆる場面で役立ちます。特にwhile文では、continueを使った場合に条件を更新する前にスキップしてしまい無限ループを引き起こす危険があるため、注意が必要です。このような性質を理解しておくことで、予期せぬバグや無限ループを防ぎ、安定したコードを書く力が身につきます。 ネストされたループでは、ラベルを使うことでどのループに対してbreakやcontinueを適用するかを明確にできるため、複雑な処理でも読みやすさと正確性を保てます。Swiftのプログラムでは、可読性や保守性が特に重視されるため、continueやbreakを必要以上に使いすぎないバランスも大切です。適切に利用すればコードは美しくまとまり、無駄のない処理フローが実現できます。 ここでは、今回学んだcontinueとbreakの特徴を整理し、それらを組み合わせて実際に処理を構築するサンプルプログラムを紹介します。コードを参照しながら実際に手を動かすことで、Swiftの繰り返し構文に対する理解はより深まり、自信を持って活用できるようになります。
サンプルプログラム(continueとbreakの実践例)
// 商品の在庫をチェックし、特定の条件で処理を制御する例
let items = ["りんご", "なし", "みかん", "バナナ", "ぶどう"]
let bannedItem = "みかん"
for item in items {
// 禁止されている商品は表示せずスキップ
if item == bannedItem {
continue
}
print("商品:\(item) を確認しました")
// 特定の条件でループを終了
if item == "バナナ" {
print("バナナを見つけたので処理を終了します")
break
}
}
このサンプルでは、continueによって「みかん」をスキップし、breakによって「バナナ」が見つかった時点で処理を終了しています。ループの流れを柔軟にコントロールできることがわかる良い例といえます。Swiftの繰り返し構文は日常的に使う場面が多いため、continueとbreakの違いを理解して使い分けるスキルは、アプリ開発をスムーズに進めるために欠かせない知識です。今回の記事で紹介したポイントを意識しながら、実際のコードに取り入れていくことで、より読みやすく、意図を正確に伝えられるプログラムを書く力が自然と身についていくでしょう。
生徒
「今日の学習で、continueはスキップ、breakは終了っていう違いがすごくハッキリ理解できました!」
先生
「そうだね。この二つはSwiftの繰り返し処理では欠かせないキーワードだから、しっかり区別して使いこなせると大きな武器になるよ。」
生徒
「while文でcontinueを使うと、更新を飛ばしてしまって無限ループになる可能性があるって話も印象に残りました。」
先生
「そこは大事なポイントだね。ルールを正しく理解して使い分けることで、安心してプログラムを書けるようになるよ。」
生徒
「ラベルつきのbreakも覚えておくと、複雑な処理でも整理して書けそうです!」
先生
「まさにその通り。これから実際のアプリづくりでもどんどん使ってみて、自然に活用できるようにしていこうね。」