// break可以結束當前最近的循環,不會阻礙後面的輸出,如果想結束外層的循環,可以使用標籤, for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { fmt.Printf("i: %v,j: %v \n",i,j) if (i == 2 && j == 2) { break } } } // 標籤使用 label1: for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { fmt.Printf("i: %v,j: %v \n",i,j) if (i == 2 && j == 2) { break label1 } } }
// 輸出被6整除的數, continue結束當前最近的循環,繼續執行離它最近的循環,不會阻礙後面的輸出 for i := 1; i <= 100; i++ { if (i % 6 !=0) { continue } fmt.Println(i) } for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { if (i == 2 && j == 2) { continue } fmt.Printf("i: %v, j: %v \n", i,j) } } fmt.Print("ok") }
// goto可以無條件轉移到程序指定的行,一般配合條件使用,但是一般不建議使用 fmt.Println("1") if (true) { goto label1 } fmt.Println("2") fmt.Println("3") fmt.Println("4") label1: fmt.Println("5")
i: 1, j: 2
i: 1, j: 3
i: 1, j: 4
i: 1, j: 5
i: 1, j: 6
i: 1, j: 7
i: 1, j: 8
i: 1, j: 9
i: 2, j: 2