這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
流程式控制制
在go語言中,流程式控制制主要分為:選擇、迴圈、跳轉。
選擇:就是由不同的條件進行不同的操作
迴圈;就是重複的執行
跳轉:根據條件回到某個操作
在go語言中的流程式控制制語句有:
條件陳述式,對應的關鍵字為if、 else和else if;
選擇語句,對應的關鍵字為switch、 case和select(將在介紹channel的時候細說);
迴圈語句,對應的關鍵字為for和range;
跳躍陳述式,對應的關鍵字為goto。
同樣的,在go語言中也有break、continue和fallthrough等關鍵字
條件陳述式:
if a < 5 {return 0} else {return 1}
條件陳述式不需要使用括弧將條件包含起來();
無論語句體內有幾條語句,花括弧{}都是必須存在的;
左花括弧{必須與if或者else處於同一行;
在if之後,條件陳述式之前,可以添加變數初始化語句,使用;間隔;
有傳回值的函數中,不允許將“最終的” return語句包含在if…else…結構中,否則會編譯失敗:
選擇語句
switch i {case 0:fmt.Printf("0")case 1:fmt.Printf("1")case 2:fallthroughcase 3:fmt.Printf("3")case 4, 5, 6:fmt.Printf("4, 5, 6")default:fmt.Printf("Default")}
左花括弧{必須與switch處於同一行;
條件運算式不限制為常量或者整數;
單個case中,可以出現多個結果選項;
Go語言不需要用break來明確退出一個case;
只有在case中明確添加fallthrough關鍵字,才會繼續執行緊跟的下一個case;
可以 不設定switch之 後的條 件運算式, 在此種情況 下,整個switch結構與 多個if…else…的邏輯作用等同。
迴圈語句
sum := 0for i := 0; i < 10; i++ {sum += i}
Go語言中的迴圈語句只支援for關鍵字,而不支援while和do-while
左花括弧{必須與for處於同一行。
Go語言不支援以逗號為間隔的多個指派陳述式,必須使用平行賦值的方式來初始化多個變數。
提供了一個更進階的break,可以選擇中斷哪一個迴圈
for j := 0; j < 5; j++ {for i := 0; i < 10; i++ {if i > 5 {break JLoop}fmt.Println(i)}}JLoop:// ...
跳躍陳述式
func myfunc() {i := 0HERE:fmt.Println(i)i++if i < 10 {goto HERE}}