序章

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

ループの操作とフローを制御する方法を学ぶことで、プログラムのロジックをカスタマイズできるようになります。 あなたはあなたのループを制御することができます breakcontinue ステートメント。

ブレークステートメント

Goでは、 break ステートメントは、現在のループの実行を終了します。 A break ほとんどの場合、条件付きifステートメントとペアになっています。

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

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")
}

この小さなプログラムは、 for 反復するループ i より少ない 10.

以内 for ループ、あります if 声明。 The if ステートメントは、の状態をテストします i 値がより小さいかどうかを確認する 5. の値が i と等しくない 5、ループが続行され、の値が出力されます。 i. の値が i に等しい 5、ループは実行されます break ステートメント、それが Breaking out of loop、ループの実行を停止します。 プログラムの最後に印刷します Exiting program ループを終了したことを示します。

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

Output
The 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回繰り返されますが、それぞれに条件付きのループがあります if とのステートメント break 声明。 の値が outer 等しい 3. の値が inner2.

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

Output
The 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 ループの実行を停止します。 次に、ループの反復を継続する方法を見てみましょう。

ステートメントを続ける

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

と同じように break ステートメント、 continue ステートメントは通常、条件付きで使用されます if 声明。

同じを使用して for 前のBreakStatement セクションのようなループプログラムでは、 continue ではなくステートメント break 声明:

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")
}

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

Output
The 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 深くネストされた条件付きコードを回避するため、または拒否したい頻繁に発生するケースを排除することによってループを最適化するためのステートメント。

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

結論

The breakcontinue Goのステートメントを使用すると、 for コード内でより効果的にループします。