用於測試條件是否成立,成立則執行if括起來的**:
if condition
複製**
如果需要在條件不滿足時執行,則只需要加上else即可:
if condition else
複製**
如果存在多個條件,可以使用else-if增加新的判斷:
if condition1 else
if condition2 else
複製**
else-if的數量是沒有限制的,但是為了**的可讀性,盡量少用else-if。
go的switch使用非常靈活,接受任意形式的表示式:
switch var1
複製**
var1可以是任何型別,而val和val2可以是同型別的任意值。你可以同時在乙個分支中使用多個值:
case val1, val2, val3:
複製**
go中的switch不需要break來結束分支。如果需要在執行了乙個case分支後繼續往後執行,只需要使用fallthrough關鍵字即可:
switch i
複製**
當case後的語句只有一行時,可以直接將語句放在case後面。case後的執行語句也不需要花括號。case同樣支援邏輯判斷:
switch i
複製**
同樣的,可以使用return來提前結束**塊的執行。
想要執行某些語句,go中可以使用for來執行。for的基本形式為:
for 初始化語句; 條件語句; 修飾語句
複製**
例子:
for i := 0; i < 3; i++
複製**
輸出:
for index = 0
for index = 1
for index = 2
複製**
因為go具有平行複製的特性,所以也可以在for中使用多個計數器:
for i, j := 0, 10; i < j; i++, j = i + 1
複製**
也可以將兩個for迴圈巢狀使用:
for i := 0; i < 3; i++
}複製**
還可以迴圈乙個unicode字串:
str := "he to"
for i := 0; i < len(str); i++
複製**
輸出:
for index = 0, is = h
for index = 1, is = e
for index = 2, is =
for index = 3, is = t
for index = 4, is = o
複製**
for也支援純條件語句,可以將這個認為是沒有初始化語句和修飾語句的for迴圈:
i := 5
for i >= 0
複製**
輸出:
543
210-1
複製**
for還有另外乙個表達方式for-range,這是go特有的一種方式,在很多場景下都很實用,它可以迭代任何乙個集合,一般形式為:
for i, val := range coll {}
複製**
val對應的是集合中對應索引的值拷貝,剛才的unicode字串就可以直接使用range來迴圈:
str := "he to"
for i, val := range str
複製**
break用於條件,迴圈語句中的退出操作,break做的作用結果是跳過整個**塊,執行後續的操作。 例子:
for i := 0; i < 3; i++
fmt.println(j)
}fmt.println()
}複製**
輸出:
0123
0123
0123
複製**
for i := 0; i < 5; i++
fmt.println(i)
}//輸出01
2複製**
continue只能用於for迴圈中。
for,switch都可以配合label使用,即第一行第乙個冒號:結尾的單詞:
label1:
for i := 0; i < 5; i++
fmt.println(i)
}// 輸出01
24// 3被跳過了
複製**
但注意標籤和 goto 語句之間不能出現定義新變數的語句,否則會導致編譯失敗。 另外,可以使用goto語句和標籤配合使用來模擬迴圈
i:=0
here:
print(i)
i++if i==5
goto here
複製**
但是這種方式是不推薦使用,如果一定要使用,將標籤放在goto的後面,但注意標籤和goto語句之間不能出現定義新變數的語句,否則會導致編譯失敗。 go流程控制
1 if語句 1 if ture else 2if a 44 a 23else 2 switchswitch 語句用於基於不同條件執行不同動作,每乙個 case 分支都是唯一的,從上直下逐一測試,直到匹配為止。golang switch 分支表示式可以是任意型別,不限於常量。可省略 break,預設...
go流程控制
go語言僅有兩種流程控制語法,不存在while if age 18else if age 7else 標準迴圈 標準迴圈,結束後變數不存在 for i 0 i 10 i 迴圈外定義,結束迴圈後,變數仍存在 var i 0for i 10 i 將累加數值置於迴圈體中 for i 10 閉迴圈 forr...
go 流程控制
if condition ifcondition else ifcondition else if statement condition else 練習二 package main import fmt func main else 練習三 package main import fmt func...