Goでループを操作するときにBreakおよびContinueステートメントを使用する
序章
Goでforループを使用すると、タスクを自動化して効率的に繰り返すことができます。
ループの操作とフローを制御する方法を学ぶことで、プログラムのロジックをカスタマイズできるようになります。 breakおよびcontinueステートメントを使用してループを制御できます。
ブレークステートメント
Goでは、breakステートメントは現在のループの実行を終了します。 breakは、ほとんどの場合、条件付きifステートメントとペアになっています。
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ステートメントは、呼び出された最も内側のループの実行のみを停止することを覚えておくことが重要です。 ネストされたループのセットがある場合は、必要に応じてループごとにブレークが必要になります。
入れ子.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回繰り返されますが、それぞれに[X54X]ステートメントを含む条件付きifステートメントがあります。 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ステートメントで使用されます。
前のBreakステートメントセクションと同じforループプログラムを使用して、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
ここでは、The value of i is 5という行が出力に表示されないことがわかりますが、ループはその後も続き、ループを終了する前に6〜10の数字の行を出力します。
continueステートメントを使用して、深くネストされた条件付きコードを回避したり、拒否したい頻繁に発生するケースを排除してループを最適化したりできます。
continueステートメントにより、プログラムはループ内で発生する特定の要因をスキップしますが、ループの残りの部分を続行します。
結論
Goのbreakおよびcontinueステートメントを使用すると、コードでforループをより効果的に使用できます。