語法:
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
,如果乙個都匹配不到,則執行default
default
語句不是必須的
switch
穿透fallthrough
,如果在case
語句塊後增加fallthrough
,則會繼續執行下乙個case
,也叫switch
穿透
var num int=10
switch num
type switch
:switch
語句還可以被用於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...