カテゴリ: Go言語 更新日: 2025/06/23

Go言語のbreakとcontinueの違いとは?初心者でもわかるループ制御テクニック

Go言語のbreakとcontinueの違いとは?ループを制御するテクニック
Go言語のbreakとcontinueの違いとは?ループを制御するテクニック

先生と生徒の会話形式で理解しよう

生徒

「Go言語でループを途中で止めたり、スキップしたりする方法ってありますか?」

先生

「良い視点ですね。Go言語では、ループ処理を制御するためにbreakcontinueという2つのキーワードを使います。」

生徒

「どっちがどういう時に使われるんですか?」

先生

「では、これからbreakcontinueの使い方の違いと、それぞれの具体例を見ていきましょう!」

1. Go言語におけるループ処理とは?

1. Go言語におけるループ処理とは?
1. Go言語におけるループ処理とは?

Go言語(Golang)では、同じ処理を繰り返す「ループ処理」がよく使われます。その代表的な構文がfor文です。ループ処理は、例えば「1から10までの数字を順番に表示する」といった場面で活躍します。

ループ中に「この条件なら途中でやめたい」とか「特定の条件だけ飛ばしたい」と思うことがあります。そのときに使えるのがbreakcontinueです。

2. break文とは?ループを途中で終了する

2. break文とは?ループを途中で終了する
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文とは?特定の処理だけスキップする

3. continue文とは?特定の処理だけスキップする
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の違いを図解で理解しよう

4. breakとcontinueの違いを図解で理解しよう
4. breakとcontinueの違いを図解で理解しよう

初心者の方にとっては、「breakとcontinueの違い」が少しややこしく感じるかもしれません。わかりやすくするために、以下のようなイメージで覚えると良いでしょう。

  • break:ループそのものをやめる(完全に終了)
  • continue:その回の処理だけスキップして次へ

たとえば、10人に順番に話しかけていたとして、5人目で帰るならbreak。5人目だけ無視して6人目から続けるならcontinueです。

5. ネストされたループ(入れ子)でのbreakとcontinue

5. ネストされたループ(入れ子)でのbreakとcontinue
5. ネストされたループ(入れ子)でのbreakとcontinue

Go言語では、ループの中にさらにループを書くこともできます(これを「ネスト」といいます)。このような場合、breakcontinueは直近のループにだけ作用します。


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

ちなみに、特定のループに対してbreakcontinueをしたい場合は、「ラベル」を使って制御することもできます(ここでは触れません)。

6. まとめて練習!breakとcontinueを組み合わせる

6. まとめて練習!breakとcontinueを組み合わせる
6. まとめて練習!breakとcontinueを組み合わせる

最後に、breakcontinueを両方使った例を見てみましょう。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

このようにbreakcontinueをうまく使うと、処理の流れを柔軟にコントロールできます。初心者の方は最初は混乱するかもしれませんが、実際に手を動かしてみることで、少しずつ慣れていきます。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!