カテゴリ: Go言語 更新日: 2025/12/15

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

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

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言語におけるbreak文とcontinue文は、ループ処理を柔軟に制御するために欠かせない基本テクニックです。とくに、for文での繰り返し処理が多いプログラミングでは、「途中でループを終了したい」「特定の条件だけ飛ばしたい」といった状況が頻繁に発生します。今回の記事では、それぞれの特徴と使い方を丁寧に確認しながら、初心者でも理解しやすい形で具体例を示しました。breakはループ処理そのものを停止する強い制御であり、continueは条件に応じて特定の回だけ処理をスキップできるという柔軟さが特徴です。また、ネストされたループでは内側のループに作用すること、ラベルを付けることで外側のループにも働かせられることなども理解が深まるポイントです。

さらに、実践的なサンプルプログラムを通して、複雑に見える条件分岐でも、breakとcontinueを組み合わせることで自然な処理の流れを作れることがわかりました。たとえば、3の倍数をスキップし、7になったら処理を終了する例では、continueとbreakの役割が直感的に理解できる構造になっています。Go言語の学習では、多くの場面でループが登場するため、これら2つの制御文をきちんと使いこなせるようになることは、コードの可読性と効率を高めるうえでも重要です。

また、実際の開発現場でも、ループの途中で不要な処理を避けたり、判断に応じてすぐにループを抜けたりするケースは多く、breakとcontinueは習得必須の知識となります。今回のまとめでは、検索が多い初心者向けのGo言語キーワードを交えながら、自然な流れで理解を深められるように記述していますので、学習時の振り返りとしても活用できます。ここでは、追加で参考になるサンプルコードをもう一つ掲載し、理解をさらに強固にしていきましょう。

追加サンプルコード:偶数のみを表示し、特定の値で終了する例


package main

import "fmt"

func main() {
    for i := 1; i <= 15; i++ {
        if i % 2 != 0 {
            continue
        }
        if i == 12 {
            break
        }
        fmt.Println(i)
    }
}

このサンプルでは、奇数をスキップしつつ、12に到達したところでループを終了します。continueとbreakの特徴を同時に確認できる、理解促進に最適な構造です。条件分岐と組み合わせていくことで、より複雑なロジックにも対応できるようになります。Go言語の基本構文を身につけたら、このようなループ制御の応用に挑戦することで、プログラムの幅が大きく広がります。ループ処理の制御を理解することは、プログラム全体の品質向上にも繋がるため、大切な学習ステップです。

先生と生徒の振り返り会話

生徒

「今日の学びで、breakとcontinueの違いがかなりはっきりしました!それぞれの使いどころが理解できました。」

先生

「とても良いですね。Go言語では、ループをどう扱うかでコードの読みやすさも変わるので、この理解は大きな前進ですよ。」

生徒

「continueは処理をスキップ、breakはループ自体を止める、というイメージで覚えたら自然と考え方が整理できました!」

先生

「そう、そのイメージはとても大切です。実際の開発でも頻繁に登場する概念なので、今日覚えたことを忘れないよう、実際に手を動かしながら繰り返し練習していくとさらに身につきますよ。」

生徒

「はい!Go言語のループ処理が楽しくなってきました。breakとcontinueをうまく使えるように、また練習してみます。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語でbreak文とは何をするためのキーワードですか?

Go言語のbreak文は、ループ処理を途中で強制的に終了させるための制御文です。「この条件になったらループを抜けたい」といったときに使用します。ループの外へすぐに抜けたいときに非常に便利です。
関連記事:
カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New2
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
New3
Swift
Swiftでエラー原因を可視化!ログとトレースのベストプラクティスを初心者向けに解説
New4
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク