go 中break ,continue , goto, return 使用

    // 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")
//return 結束當前函數,阻礙後面的輸出
    for i := 1; i <= 10; i++ {
        for j := 2; j < 10; j++ {
            fmt.Printf("i: %v, j: %v \n", i,j)
            if (i == 2 && j== 2) {
                return
            }
        }
       
    }
    fmt.Print("ok")
}
輸出

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章