新浪短网址链接生成器2022最好的百度seo
-
带标签的 continue:
直接跳到标签所标记的最外层循环的下一个迭代,忽略当前迭代剩余的代码。
-
带标签的 break:
直接跳出标签所标记的最外层循环,继续执行该循环之后的代码。
-
goto 关键字
goto
可以无条件地跳转到程序中指定的标签处。在这种情况下,可以使用任意标签,不仅限于循环。
代码范例:
continue
rowLoop: // 这是外层循环的标签
for i, row := range array { // 外层循环for j, value := range row { // 内层循环if value <= threshold {continue rowLoop}fmt.Printf("Found: row %d, col %d\n", i, j)return}
}// 输出:
// Row 0 start
// Row 0, Col 0
// Row 1 start
// Row 1, Col 0
// Row 2 start
// Row 2, Col 0
break
rowLoop: // 这是外层循环的标签
for i := 0; i < 3; i++ { // 外层循环fmt.Printf("Row %d start\n", i)for j := 0; j < 3; j++ { // 内层循环if j == 1 {break rowLoop}fmt.Printf("Row %d, Col %d\n", i, j)}fmt.Printf("Row %d end\n", i)
}// 输出:
// Row 0 start
// Row 0, Col 0
goto
for i := 0; i < 3; i++ { // 外层循环fmt.Printf("Row %d start\n", i)for j := 0; j < 3; j++ { // 内层循环if j == 1 {goto end}fmt.Printf("Row %d, Col %d\n", i, j)}fmt.Printf("Row %d end\n", i)
}end: // 这是goto标签fmt.Println("Reached end label")// 输出:
// Row 0 start
// Row 0, Col 0
// Reached end label