Go言語のbreakとcontinueの違いとは?初心者でもわかるループ制御テクニック
生徒
「Go言語でループを途中で止めたり、スキップしたりする方法ってありますか?」
先生
「良い視点ですね。Go言語では、ループ処理を制御するためにbreakとcontinueという2つのキーワードを使います。」
生徒
「どっちがどういう時に使われるんですか?」
先生
「では、これからbreakとcontinueの使い方の違いと、それぞれの具体例を見ていきましょう!」
1. Go言語におけるループ処理とは?
Go言語(Golang)では、同じ処理を繰り返す「ループ処理」がよく使われます。その代表的な構文がfor文です。ループ処理は、例えば「1から10までの数字を順番に表示する」といった場面で活躍します。
ループ中に「この条件なら途中でやめたい」とか「特定の条件だけ飛ばしたい」と思うことがあります。そのときに使えるのがbreakとcontinueです。
2. break文とは?ループを途中で終了する
break(ブレーク)文は、ループ処理を途中で止めて、ループの外に出る命令です。「もうこれ以上続けなくていい」と判断したときに使います。
たとえば、1から10まで数えるけど、5になったら止めたい場合はこうなります。
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 5 {
break
}
fmt.Println(i)
}
}
上のコードでは、iが5になった瞬間にbreakが実行されて、ループが終了します。
実行結果は以下のようになります。
1
2
3
4
3. continue文とは?特定の処理だけスキップする
continue(コンティニュー)文は、ループの中で「今の回だけ処理を飛ばしたい」というときに使います。ループ自体は続けますが、その回の処理だけ無視されます。
たとえば、1から10まで数えるけど、5だけ表示したくない場合はこう書きます。
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 5 {
continue
}
fmt.Println(i)
}
}
このコードでは、iが5のときだけfmt.Println(i)が実行されません。
実行結果は以下の通りです。
1
2
3
4
6
7
8
9
10
4. breakとcontinueの違いを図解で理解しよう
初心者の方にとっては、「breakとcontinueの違い」が少しややこしく感じるかもしれません。わかりやすくするために、以下のようなイメージで覚えると良いでしょう。
- break:ループそのものをやめる(完全に終了)
- continue:その回の処理だけスキップして次へ
たとえば、10人に順番に話しかけていたとして、5人目で帰るならbreak。5人目だけ無視して6人目から続けるならcontinueです。
5. ネストされたループ(入れ子)でのbreakとcontinue
Go言語では、ループの中にさらにループを書くこともできます(これを「ネスト」といいます)。このような場合、breakやcontinueは直近のループにだけ作用します。
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if j == 2 {
break
}
fmt.Printf("i=%d, j=%d\n", i, j)
}
}
}
このコードでは、内側のjのループだけがbreakされ、外側のiのループは続きます。
i=1, j=1
i=2, j=1
i=3, j=1
ちなみに、特定のループに対してbreakやcontinueをしたい場合は、「ラベル」を使って制御することもできます(ここでは触れません)。
6. まとめて練習!breakとcontinueを組み合わせる
最後に、breakとcontinueを両方使った例を見てみましょう。1から10までの数をループし、3の倍数はスキップし、7になったらループをやめるという内容です。
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i % 3 == 0 {
continue
}
if i == 7 {
break
}
fmt.Println(i)
}
}
この例では、「3の倍数(3,6)」は表示されず、「7」でループが終わります。
1
2
4
5
このようにbreakとcontinueをうまく使うと、処理の流れを柔軟にコントロールできます。初心者の方は最初は混乱するかもしれませんが、実際に手を動かしてみることで、少しずつ慣れていきます。