if
•Go里面if條件判斷語句中不需要括號,條件判斷語句里面允許聲明一個變量,任何在這里聲明的變量都可以在所有的條件分支中使用。
if x := 11; x > 10 {
fmt.Println("x is greater than 10")
} else {
fmt.Println("x is less than 10")
}
goto
•用goto跳轉(zhuǎn)到必須在當前函數(shù)內(nèi)定義的標簽,標簽名是大小寫敏感的。
func myFunc() {
i := 0
Here: //這行的第一個詞,以冒號結(jié)束作為標簽
println(i)
i++
goto Here //跳轉(zhuǎn)到Here去
}
for
•for是go中的唯一的循環(huán)結(jié)構(gòu),在go里面有以下幾種使用形式
//經(jīng)典的初始化/條件/后續(xù)形式的for循環(huán)
for expression1; expression2; expression3 {}
//帶單個循環(huán)條件,即忽略expression1和expression3:
sum := 1
for ; sum 1000; {
sum += sum
}
//其中;也可以省略,那么就變成如下的代碼了,這就是while的功能。
for sum 1000 {}
//不帶條件的for循環(huán)將一直執(zhí)行,直到在循環(huán)體內(nèi)使用了break或者return來跳出循環(huán)
for {
fmt.Println("loop")
break
}
break和continue
•當嵌套過深的時候,break可以配合標簽使用,即跳轉(zhuǎn)至標簽所指定的位置,break和continue還可以跟著標號,用來跳到多重循環(huán)中的外層循環(huán)
for配合range可以用于讀取slice,map和數(shù)組的數(shù)據(jù)
•range 在數(shù)組和 slice 中都同樣提供每個項的索引和值。我們不需要索引的時候使用空值定義符_ 來忽略它,因為對于“聲明而未被調(diào)用”的變量, 編譯器會報錯。有時候我們需要這個索引。
•range在map中迭代鍵值對
switch
//經(jīng)典的初始化/條件/后續(xù)形式的for循環(huán)
for expression1; expression2; expression3 {}
//帶單個循環(huán)條件,即忽略expression1和expression3:
sum := 1
for ; sum 1000; {
sum += sum
}
//其中;也可以省略,那么就變成如下的代碼了,這就是while的功能。
for sum 1000 {}
//不帶條件的for循環(huán)將一直執(zhí)行,直到在循環(huán)體內(nèi)使用了break或者return來跳出循環(huán)
for {
fmt.Println("loop")
break
}
總結(jié)
以上所述是小編給大家介紹的go流程控制代碼詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
您可能感興趣的文章:- C++流程控制中用于跳轉(zhuǎn)的return和goto語句學(xué)習教程
- Go語言流程控制之goto語句與無限循環(huán)
- Go語言中的流程控制結(jié)構(gòu)和函數(shù)詳解