天天看點

Go語言基礎篇--4.Go語言之【if+switch+for語句】if語句switch-case語句for語句

寫在前面:各類程式語言中的if for switch語句的文法基本上是類似的,隻需要注意go語言與其他程式語言的不同之處就好。

if語句

特例:go語言中if語句中可以包含變量的申明,但是其作用域僅僅在目前的if語句結構當中可用。

if num := 99; num >= 60 {
		fmt.Printf("分數為:%d.恭喜及格\n", num)
	} else {
		fmt.Printf("分數為:%d.不及格\n", num)
	}

           

如上,num在該if-else結構語句當中定義,是以其作用域僅僅在該語句結構當中有效。

switch-case語句

tips:

1.case是無序的

2.case後的數值是唯一的

3.case後可跟随多個數值

4.case後的數值必須與switch作用的變量類型保持一緻

5.如果省略了switch後面的變量,則預設是bool類型且作用在true上

go中的fallthrough可穿透目前case到達下一個case,且fallthrough隻可放在某個case中的最後一行

for語句

/*
for 表達式1,表達式2,表達式3{\
......
}
*/
           
for i:=1;i<6;i++ {
	fmt.Printf("i-->%d\n",i)
}
//fmt.Printf(i)//報錯,因為i的作用域僅在for結構内有效
           

隻有表達式2時,正常情況下是for ; i<6 ; (…)然鵝go語言中";"可以省略,是以就可寫成如下形式。該形式與上述for循環的差別就在于i的作用域發生改變。

i:=1
for i<6 {
	fmt.Printf("i-->%d\n",i)
}
fmt.Printf(i)
           

省略表達式2時,相當于直接作用于表達式2=true的條件上,此時for循環的功能便和while(true){…}相同

i := 1
for {
	fmt.Printf("i-->%d\n",i)
	i++
}
           

for中的continue語句,跳過目前循環,直接執行下一次循環

for i := 1; i <= 9; i++ {
		if i == 5 {
			continue
		}
		fmt.Printf("%d", i)
	}
//輸出結果為12346789(跳過5)