ホームページ > バックエンド開発 > Golang > GoのBreak and Continueステートメントをどのように使用しますか?

GoのBreak and Continueステートメントをどのように使用しますか?

Emily Anne Brown
リリース: 2025-03-19 14:36:34
オリジナル
171 人が閲覧しました

GoのBreak and Continureステートメントをどのように使用しますか?

Goでは、 break and continueステートメントを使用して、 forrangeswitchなどのループのフローを制御します。これらがどのように機能するかは次のとおりです。

  • ブレークステートメント:
    breakステートメントは、ループの実行を早期に終了するために使用されます。ループ内でbreakが発生すると、ループはすぐに終了し、ループに続く次のステートメントでプログラム制御が再開されます。

     <code class="go">for i := 0; i </code>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    この例では、ループは番号0〜4を印刷し、5にiたときに終了します。

  • 続行ステートメント:
    continueステートメントは、ループの現在のイテレーションの残りの部分をスキップし、次のイテレーションに進むために使用されます。ループ内でcontinueが発生すると、現在の反復が放棄され、ループは次のイテレーションで進行します。

     <code class="go">for i := 0; i </code>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    この例では、ループは数値0〜4および6〜9を印刷し、5をスキップします。

breakcontinue両方をネストされたループ内で使用できます。ただし、外側のループを制御するためにラベルとともに使用されない限り、一部の内側のループにのみ影響します。

GOプログラミングのブレークステートメントの一般的なユースケースは何ですか?

breakステートメントは、次のシナリオでGOプログラミングで一般的に使用されます。

  • 無限ループの終了:特定の条件下で停止できる無限のループを作成する場合、ループを終了するためにbreakを使用できます。

     <code class="go">for { input := getInput() if input == "exit" { break } processInput(input) }</code>
    ログイン後にコピー
  • コレクションの検索:コレクションを反復して(配列やスライスなど)、特定の要素を見つける必要がある場合、要素が見つかったら検索を停止するためにbreakを使用できます。

     <code class="go">numbers := []int{1, 2, 3, 4, 5} target := 3 for _, num := range numbers { if num == target { fmt.Println("Found:", target) break } }</code>
    ログイン後にコピー
  • スイッチステートメントでのケースマッチング: GOのbreakステートメントは、 switchステートメントの各ケースの最後に暗黙的に追加されますが、 switchステートメントで明示的に使用して、 switch構造全体を早期に終了できます。

     <code class="go">switch num := 3; num { case 1: fmt.Println("One") case 2: fmt.Println("Two") case 3: fmt.Println("Three") break // Not needed explicitly here but can be used in some scenarios default: fmt.Println("Other") }</code>
    ログイン後にコピー
  • ネストされたループからの脱出:ラベルを使用すると、 breakを使用してネストされたループから出ることができます。

     <code class="go">OuterLoop: for i := 0; i </code>
    ログイン後にコピー

継続ステートメントは、GOのループ実行にどのように影響しますか?

GOのcontinueステートメントは、次の方法でループの実行に直接影響します。

  • 現在の反復スキップ:ループの本体内でcontinueが発生すると、すぐにループの次の反復にジャンプします。同じ反復内でcontinue後のステートメントがスキップされます。

     <code class="go">for i := 0; i </code>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    この例では、出力は0 3 4ます1 continueステートメントにより、 i 2ときに現在の反復が放棄されるため、数字2がスキップされます。

  • ネストされたループ内: continueステートメントは、表示される内側のループのみに影響します。外側のループには影響しません。

     <code class="go">for i := 0; i </code>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    この例では、 j 1等しい場合、内側のループの現在の反復がスキップされ、次のj値に移動します。外側のループは通常どおり続きます。

  • ループ処理の効率: continue 、ループ内の不必要な処理または処理の例外をスキップするのに役立ち、ループの効率を改善します。

     <code class="go">numbers := []int{1, -2, 3, -4, 5} for _, num := range numbers { if num </code>
    ログイン後にコピー

    この場合、負の数はスキップされ、正の数のみが印刷され、より効率的なループ処理が行われます。

GOループを継続することと続行することの重要な違いは何ですか?

GOループのbreakステートメントとcontinueステートメントの重要な違いは次のとおりです。

  • ループの実行への影響:

    • breakすぐにループ全体を終了し、ループを終了し、ループに続いて次のステートメントに移動します。
    • 現在の反復の残りの部分をcontinueし、ループの次の反復に移動します。
  • 使用事例:

    • 通常、 breakは、特定の条件を満たしているときにループを完全に終了する必要がある場合に使用されます(たとえば、要素を見つける、制限に達する)。
    • continue 、現在の反復をスキップするときに使用されますが、ループを続行します(たとえば、特定の値をスキップして、不必要な処理を回避します)。
  • ネストされたループへの影響:

    • ラベルなしで、 break continue 、それらの一部である最も内側のループにのみ影響します。
    • ラベルを使用すると、 break任意の外部ループを終了できますが、 continue外側のループの次の反復にスキップできます。
  • 制御フロー:

    • break 、ループを終了することにより制御フローを変更します。これは、早期終了によく使用されます。
    • continueループのフローを維持しますが、フィルタリングまたは選択的処理に役立つ現在の反復を変更します。

これは、表形式の概要です。

側面 break continue
ループ実行効果 すぐにループを終了します 現在の反復の残りをスキップします
典型的なユースケース 条件でループを終了します 特定の条件下で反復をスキップします
ネストされたループへの影響 最も内側のループのみに影響します(ラベル付けされていない限り) 最も内側のループのみに影響します(ラベル付けされていない限り)
制御フローの変化 ループを終了します 次の反復に移動します

これらの違いを理解することは、GOでループの動作を効果的に制御するための正しいステートメントを選択するのに役立ちます。

以上がGoのBreak and Continueステートメントをどのように使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート