Go 程式流程控制

2021-10-06 06:43:58 字數 2823 閱讀 4504

語法:

switch表示式
基本**:

var key byte

fmt.

println

(」請輸入個字元 a,b,c,d,e,f,g")

fmt.scanf("

%c", &key)

switch key

switch 的使用的注意事項和細節:case/switch後是乙個表示式( 即:常量值、變數、乙個有返回值的函式等都可以)

case後的各個表示式的值的資料型別,必須和switch的表示式資料型別一致

case後面可以帶多個表示式,使用逗號間隔。比如case表示式 1, 表示式 2 …

case後面的表示式如果是常量值(字面量),則要求不能重複

case後面不需要帶break,程式匹配到乙個case後就會執行對應的**塊,然後退出switch,如果乙個都匹配不到,則執行defaultdefault語句不是必須的

switch穿透fallthrough,如果在case語句塊後增加fallthrough,則會繼續執行下乙個case,也叫switch穿透

var num int=10

switch num

type switchswitch語句還可以被用於type-switch來判斷某個inte***ce變數中實際指向的變數型別

var x inte***ce

var y =

10.0

x=yswitch i := x.

(type

)

for i:=

1;i<=

10;i++

②第二種

for 迴圈判斷條件
j:=

1for j<=

10

③第三種

for

上面的寫法等價for;; {}是乙個無限迴圈, 通常需要配合break語句使用

k :=

1for

else

k++}

④第四種go提供for-range的方式,可以方便遍歷字串和陣列

str :=

"hello"

for index, val :=

range str

輸出:

如果我們的字串含有中文,那麼傳統的遍歷字串方式,就是錯誤,會出現亂碼。原因是傳統的對字串的遍歷是按照位元組來遍歷,而乙個漢字在utf8編碼是對應3個位元組。 如何解決需要:將str轉成rune切片。

str :=

"你好,go"

str2 :=

rune

(str)

for i :=

0; i <

len(str2)

; i++

對應for-range遍歷方式而言,是按照字元方式遍歷。因此如果有字串有中文也是支援的。

str :=

"你好,go"

for index, val :=

range str

語法:

goto label

...label:statement

案例:

go流程控制

用於測試條件是否成立,成立則執行if括起來的 if condition 複製 如果需要在條件不滿足時執行,則只需要加上else即可 if condition else 複製 如果存在多個條件,可以使用else if增加新的判斷 if condition1 else if condition2 els...

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...