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