前書き

Goで* forループ*を使用すると、効率的な方法でタスクを自動化して繰り返すことができます。

ループの動作とフローを制御する方法を学習すると、プログラム内のカスタマイズされたロジックが可能になります。 `+ break `および ` continue +`ステートメントでループを制御できます。

ブレイクステートメント

Goでは、 + break +`ステートメントは現在のループの実行を終了します。 `+ break +`は、ほとんどの場合、https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-go [conditional `+ if + statement]とペアになります。

+ for`ループで + break`ステートメントを使用する例を見てみましょう:

break.go

package main

import "fmt"

func main() {
   for i := 0; i < 10; i++ {
       if i == 5 {
           fmt.Println("Breaking out of loop")
           break // break here
       }
       fmt.Println("The value of i is", i)
   }
   fmt.Println("Exiting program")
}

この小さなプログラムは、「+ i 」が「+10」未満である間に反復する「+ for +」ループを作成します。

+ for`ループ内には、 + if`ステートメントがあります。 `+ if `ステートメントは、 ` i `の条件をテストして、値が ` 5 `より小さいかどうかを確認します。 ` i `の値が ` 5 `と等しくない場合、ループは継続し、 ` i `の値を出力します。 「 i 」の値が「+5」に等しい場合、ループは「+ break」ステートメントを実行し、「+ Breaking out of loop」であることを出力し、ループの実行を停止します。 プログラムの最後に、「+ Exiting program」を出力して、ループを終了したことを示します。

このコードを実行すると、出力は次のようになります。

OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Breaking out of loop
Exiting program

これは、整数 `+ i `が5に等しいと評価されると、プログラムが ` break +`ステートメントでそうするように指示されているため、ループが中断することを示しています。

入れ子になったループ

`+ break +`ステートメントは、呼び出された最も内側のループの実行のみを停止することを覚えておくことが重要です。 ループのネストされたセットがある場合、必要に応じてループごとにブレークが必要になります。

nested.go

package main

import "fmt"

func main() {
   for outer := 0; outer < 5; outer++ {
       if outer == 3 {
           fmt.Println("Breaking out of outer loop")
           break // break here
       }
       fmt.Println("The value of outer is", outer)
       for inner := 0; inner < 5; inner++ {
           if inner == 2 {
               fmt.Println("Breaking out of inner loop")
               break // break here
           }
           fmt.Println("The value of inner is", inner)
       }
   }
   fmt.Println("Exiting program")
}

このプログラムには、2つのループがあります。 両方のループは5回繰り返されますが、それぞれに条件付きの + if`ステートメントと + break`ステートメントがあります。 `+ outer `の値が ` 3 `に等しい場合、外側のループは中断します。 ` inner `の値が ` 2 +`の場合、内側のループは中断します。

プログラムを実行すると、出力が表示されます。

OutputThe value of outer is 0
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 1
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 2
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
Breaking out of outer loop
Exiting program

内側のループが壊れるたびに、外側のループは壊れないことに注意してください。 これは、 `+ break +`が呼び出される最も内側のループのみを中断するためです。

`+ break +`を使用すると、ループの実行がどのように停止するかを見てきました。 次に、ループの反復を継続する方法を見てみましょう。

声明を続ける

`+ continue +`ステートメントは、ループの残りの部分をスキップし、ループの先頭に戻り、新しい反復を続行するときに使用されます。

`+ break `ステートメントと同様に、 ` continue `ステートメントは一般に条件付きの ` if +`ステートメントとともに使用されます。

前のhttps://www.digitalocean.com/community/tutorials/how-to-use-break-and-continue-statements-when-working-with-loops-inと同じ「+ for 」ループプログラムを使用する-go#break-statement [Break Statement]セクションでは、 ` break `ステートメントではなく、 ` continue +`ステートメントを使用します。

continue.go

package main

import "fmt"

func main() {
   for i := 0; i < 10; i++ {
       if i == 5 {
           fmt.Println("Continuing loop")
           continue // break here
       }
       fmt.Println("The value of i is", i)
   }
   fmt.Println("Exiting program")
}

`+ break `ステートメントではなく ` continue `ステートメントを使用することの違いは、変数 ` i `が ` 5 +`と同等であると評価された場合、中断してもコードが続行されることです。 出力を見てみましょう。

OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Continuing loop
The value of i is 6
The value of i is 7
The value of i is 8
The value of i is 9
Exiting program

ここでは、行に「+ iの値は5+」という行は決して出力されませんが、ループを終了する前に番号6〜10の行を出力するために、ループはそのポイントの後に続きます。

`+ continue +`ステートメントを使用して、深くネストされた条件コードを回避したり、頻繁に発生する拒否したいケースを排除してループを最適化したりできます。

`+ continue +`ステートメントにより、プログラムはループ内で発生する特定の要因をスキップしますが、ループの残りの部分を継続します。

結論

Goの `+ break `および ` continue `ステートメントを使用すると、コードでより効果的に ` for +`ループを使用できます。