if语句和switch语句

在程序控制方面一般都是if语句和switch语句的,那么在Go语言当中同样是有if语句和switch语句,而且还有它自身一些独特的特点,那么下面慢慢介绍这两个程序控制语句。

1、if语句

在Go语言当中if语句的语法为:

if 条件判断1 {
...
} else if 条件判断2 {
...
} else {
...
}

注意这个“{”必须和条件判断在同一行,这一点跟其它的语言有一点不太一样。

同时在Go语言当中,if当中还支持有一个初始化语句,同时与条件判断用“;”隔开,即语法为:

if 初始化语句; 条件判断1 {
...
} else if 条件判断2 {
...
} else {
...
}

举例说明:

例子1:

a := 10
if a > 8 {
fmt.Println("a = ", a)
}

由于a为10,10是大于8的,满足条件,所以可以输出结果,即:

a = 10

例子2:

if ch := 'b'; ch > 'b' {
fmt.Println("ch > b")
} else if ch < 'b' {
fmt.Println("ch < b")
} else {
fmt.Println("ch = b")
}

这个例子当中,是在条件判断的前面加了一个初始化语句,变量ch的值被初始为'b',那么前面两个判断条件都不满足,所以只有走else,那么结果为:

ch = b

2、switch语句

在Go语言当中switch语句的语法为:

switch 变量 {
case 值1:
...
// 默认是带有break
case 值2:
...
// 默认是带有break
case 值3, 值4: // 如果有多个值用“,”隔开
...
// 默认是带有break

default:
...
}

注意:在Go语言当中是默认带有break的,即只满足了一个条件,执行完后,就会跳出这个switch语句,同时如果case后面有多个值,则用“,”隔开,表示满足其中一个值,就可以执行里面的语句。

当然在switch后面也是可以带一个初始化语句的,然后与变量名用“;”隔开,即:

switch 初始化语句; 变量 {
case 值1:
...
// 默认是带有break
case 值2:
...
// 默认是带有break
case 值3, 值4: // 如果有多个值用“,”隔开
...
// 默认是带有break
default:
...
}

同时Go语言也支持在switch后面直接是“{”,然后在case上加条件判断,即:

switch {
case 条件判断1:
...
// 默认是带有break
case 条件判断2:
...

// 默认是带有break
case 条件判断3:
...
// 默认是带有break
default:
...
}

举例说明:

例子1:

switch a := 3; a {
case 1:
fmt.Println("a = 1")
case 2:
fmt.Println("a == 2")
case 3, 4:
fmt.Println("a == 3")
default:
fmt.Println("xxx")
}

由于a的值为3,满足第3个case,则打印结果为:

a == 3

例子2:

num := 90
switch {
case num >= 80:
fmt.Println("num >= 80,则为优秀")
case num >= 70:
fmt.Println("80 > num >= 70,则为良好")
case num >= 60:
fmt.Println("70 > num >= 60,则为及格")
default:
fmt.Println("不及格")
}

由于num为90,则满足第1个case条件,执行完成后,由于默认带有break则跳出switch,则打印结果为:

num >= 80,则为优秀

注意在switch语句,可以加上fallthrough关键字,程序执行到fallthrough后,那么后面的case会无条件执行,也即多会执行,例如:

switch a := 1; a {
case 1:
fmt.Println("a = 1")
fallthrough
case 2:
fmt.Println("a == 2")
fallthrough
case 3, 4:
fmt.Println("a == 3")
fallthrough
default:
fmt.Println("xxx")
}

a的值初始化为1,那么满足条1个case,首先打印a = 1,由于有fallthrough关键字,则不会跳出switch语句,会无条件执行后面的第2个case,依次类推,所以结果为:

a = 1
a == 2
a == 3
xxx


分享到:


相關文章: