Goにおける'break'ステートメントの理解
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
breakステートメントは、Goでループまたはswitchステートメントを途中で終了するために使用されます。- ラベル付き
breakを使用すると、特定のネストされたループを終了できます。 switchステートメントでは、breakはオプションですが、明確さを向上させることができます。
Goのbreakステートメントは、開発者がループまたはswitchステートメントを途中で終了できる制御フローのメカニズムです。この記事では、Goのbreakステートメントの構文、使用法、および実用的な例について詳しく説明します。
'break'ステートメントの構文
Goでは、breakステートメントは簡単で、追加のパラメータは必要ありません。その主な機能は、最も近い外側のループまたはswitchステートメントを終了することです。基本的な構文は次のとおりです。
break
ループでの'break'の使用
breakステートメントは、ループの自然な終了条件が満たされる前に終了するために、ループ内でよく使用されます。これは、特定の条件が満たされ、ループを続行する必要がない場合に特に役立ちます。
例:'for'ループの終了
特定の条件が満たされたときにbreakを使用してforループを終了する次の例を考えてみましょう。
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { break } fmt.Println(i) } }
この例では、ループは0から4までの数字を出力します。iが5に等しい場合、breakステートメントが実行され、ループが終了します。
'switch'ステートメントでの'break'の使用
Goでは、switchステートメントの各caseは自動的に終了します。つまり、他のいくつかの言語のように暗黙的なフォールスルーはありません。ただし、breakステートメントは、現在のcaseだけでなく、外側のループを終了したり、コード構造を明確にしたりするために、switch内で使用できます。
例:ループ内の'switch'の終了
package main import "fmt" func main() { for i := 0; i < 3; i++ { switch i { case 0: fmt.Println("Zero") case 1: fmt.Println("One") case 2: fmt.Println("Two") break // このbreakはswitchを終了しますが、forループは終了しません } } }
このシナリオでは、breakステートメントはiが2の場合にswitchステートメントを終了しますが、forループは次の反復を続行します。
ラベル付き'break'ステートメント
Goはラベル付きbreakステートメントもサポートしており、どのループを終了するかを指定できます。これは、ネストされたループのシナリオで特に役立ちます。
例:ネストされたループでのラベル付き'break'の使用
package main import "fmt" func main() { outerLoop: for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { if i == 1 && j == 1 { break outerLoop } fmt.Printf("i = %d, j = %d\n", i, j) } } }
ここでは、iが1でjが1の場合、break outerLoopステートメントはouterLoopを終了し、両方のループを効果的に終了します。出力は次のようになります。
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
結論
Goのbreakステートメントは、ループとswitchステートメントのフローを制御するための強力なツールです。ラベル付きbreakを含むその使用法を理解すると、効率的で読みやすいGoコードを作成する能力が向上します。
FAQs
はい、ラベル付きbreakを使用すると、特定のネストされたループを終了できます。
いいえ、Goのswitchは各caseを自動的に終了しますが、breakは明確さのために使用できます。
最も近い外側のループまたはswitchステートメントのみを終了します。
私たちはLeapcellです。Goプロジェクトをホストするための最良の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedis向けの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い — リクエストも料金もありません。
比類のないコスト効率
- アイドル料金なしの従量課金制。
- 例:$25で、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 楽なセットアップのための直感的なUI。
- 完全に自動化されたCI / CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムのメトリックとロギング。
簡単な拡張性と高性能
- 高い同時実行性を簡単に処理するための自動スケーリング。
- 運用上のオーバーヘッドゼロ — 構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ



