流程控制是每種程式語言控制邏輯走向和執行次序的重要部分,流程控制可以說是一門語言的「經脈」。
go語言中最常用的流程控制有if
和for
,而switch
和goto
主要是為了簡化**、降低重複**而生的結構,屬於擴充套件類的流程控制。
go語言中if
條件判斷的格式如下:
if 表示式1
else
if 表示式2
else
當表示式1的結果為true
時,執行分支1,否則判斷表示式2,如果滿足則執行分支2,都不滿足時,則執行分支3。 if判斷中的else if
和else
都是可選的,可以根據實際需要進行選擇。
go語言規定與if
匹配的左括號
else
if score >
75else
}if條件判斷還有一種特殊的寫法,可以在 if 表示式之前新增乙個執行語句,再根據變數值進行判斷,舉個例子:
func
ifdemo2()
else
if score >
75else
}
go 語言中的所有迴圈型別均可以使用for
關鍵字來完成。(只有for迴圈,沒有while等其他迴圈)
for迴圈的基本格式如下:
for 初始語句;條件表示式;結束語句
條件表示式返回true
時迴圈體不停地進行迴圈,直到條件表示式返回false
時自動退出迴圈。
func
fordemo()
}
for迴圈的初始語句可以被忽略,但是初始語句後的分號必須要寫,例如:
func
fordemo2()
}
for迴圈的初始語句和結束語句都可以省略,例如:
func
fordemo3()
}
這種寫法類似於其他程式語言中的while
,在while
後新增乙個條件表示式,滿足條件表示式時持續迴圈,否則結束迴圈。
for
for迴圈可以通過break
、goto
、return
、panic
語句強制退出迴圈。
go語言中可以使用for range
遍歷陣列、切片、字串、map 及通道(channel)。 通過for range
遍歷的返回值有以下規律:
陣列、切片、字串返回索引和值。
map返回鍵和值。
通道(channel)只返回通道內的值。
package main
import
"fmt"
func
main()
}
輸出內容:(乙個中文佔3個位元組)
0
, r1
, y2
, a3
, n4
, 是7
, 個10
, 大13
, 帥16
, 哥
package main
import
"fmt"
func
main()
}}
使用switch
語句可方便地對大量的值進行條件判斷。
func
switchdemo1()
}
go語言規定每個switch
只能有乙個default
分支。
乙個分支可以有多個值,多個case值中間使用英文逗號分隔。
func
testswitch3()
}
分支還可以使用表示式,這時候switch語句後面不需要再跟判斷變數。例如:
func
switchdemo4()
}
fallthrough
語法可以執行滿足條件的case的下乙個case,是為了相容c語言中的case設計的。(基本上不用)
func
switchdemo5()
}
輸出:
a
b
goto
語句通過標籤進行**間的無條件跳轉。goto
語句可以在快速跳出迴圈、避免重複退出上有一定的幫助。go語言中使用goto
語句能簡化一些**的實現過程。 (break只能推出一層迴圈)例如雙層巢狀的for迴圈要退出時:
func
gotodemo1()
fmt.
printf
("%v-%v\n"
, i, j)
}// 外層for迴圈判斷
if breakflag
}}
使用goto
語句能簡化**(實現跳出多層for迴圈):
func
gotodemo2()
fmt.
printf
("%v-%v\n"
, i, j)}}
return
// 標籤
breaktag:
fmt.
println
("結束for迴圈"
)}
break
語句可以結束for
、switch
和select
的**塊。
break
語句還可以在語句後面新增標籤,表示退出某個標籤對應的**塊,標籤要求必須定義在對應的for
、switch
和select
的**塊上。 舉個例子:
func
breakdemo1()
fmt.
printf
("%v-%v\n"
, i, j)}}
fmt.
println
("..."
)}
continue
語句可以結束當前迴圈,開始下一次的迴圈迭代過程,僅限在for
迴圈內使用。
在continue
語句後新增標籤時,表示開始標籤對應的迴圈。例如:
func
continuedemo()
fmt.
printf
("%v-%v\n"
, i, j)}}
}
Go語言 流程控制
if else分支判斷 if condition1 if condition1 else if condition1 else if condition2 else if condition3 else 練習 package main import fmt func main else 練習 寫乙個...
Go語言流程控制(六)
go語言的流程控制主要有if for和switch。go語言的if判斷 func main else if score 80 else 需要注意的兩點 1.表示式不可以使用 2.起始花括號必須緊跟表示式後面,不可以另起一行 除此之外,if 判斷寫法還有另一種寫法 func main else if ...
go流程控制
用於測試條件是否成立,成立則執行if括起來的 if condition 複製 如果需要在條件不滿足時執行,則只需要加上else即可 if condition else 複製 如果存在多個條件,可以使用else if增加新的判斷 if condition1 else if condition2 els...