在Go语言中,条件语句主要包括有if
、 switch
与 select
。git
注意: Go语言中没有三目运算符,不支持 ?:
形式的条件判断。学习
最简单的 if
语句的基本语法:测试
if 条件判断 { // 在当前条件判断为true时执行 }
条件判断若是为真(true),那么就执行大括号中的语句;若是为假(false),就不执行大括号中的语句,继续执行if
结构后面的代码。网站
值得注意的是:Go语言规定与 if
匹配的左括号 {
必须与 if和条件判断
放在同一行。code
package main import "fmt" func main() { var year int = 2020 if year > 1996 { // 若是条件为 true,则执行如下语句 fmt.Printf("%d大于1996\n", year) } fmt.Println("year的值为: ", year) }
执行结果为:get
2020大于1996 year的值为: 2020
if...else
语句的基本语法:博客
if 条件判断 { // 在当前条件判断为true时执行 } else { // 在当前条件判断为false时执行 }
条件判断若是为真(true),那么就执行其后紧跟的语句块;若是为假(false),则执行 else
后面的语句块。it
值得注意的是:else
必须与上一个 if
右边的大括号在同一行;与 else
匹配的左括号 {
也必须与 else
卸载同一行。class
package main import "fmt" func main(){ year := 2020 if year > 1996 { // 若是条件为 true,则执行如下语句 fmt.Printf("%d大于1996\n", year) } else { // 若是条件为 false,则执行如下语句 fmt.Printf("%d小于1996\n", year) } fmt.Println("year的值为: ", year) }
执行结果为:import
2020大于1996 year的值为: 2020
if...else if ...else
语句的基本语法:
if 条件判断1 { // 若是条件判断1为 true,则执行这里的语句 } else if 条件判断2 { // 若是条件判断2为 true,则执行这里的语句 } else { // 若是以上条件判断都为 false,则执行这里的语句 }
一样的:else if
必须与上一个 if
或者 else if
右边的大括号在同一行。
package main import "fmt" func main(){ year := 2020 if year > 2050 { fmt.Printf("%d大于2050\n", year) } else if year > 2000 { fmt.Printf("%d大于2000\n", year) } else { fmt.Println("year的值为: ", year) } }
执行结果为:
2020大于2000
能够在以上语句中嵌套多个一样的语句,均是合法的。
在 if语句
中嵌套 if语句
的基本语法以下:
if 条件判断1 { // 在条件判断1为 true 时,执行这里的语句 if 条件判断2 { // 在条件判断2为 true 时,执行这里的语句 } }
package main import "fmt" func main(){ year := 2020 if year > 2000 { if year > 2010 { fmt.Println("year 大于2010.") } } }
执行结果为:
year 大于2010.
switch 语句用于基于不一样条件执行不一样动做,每个 case 分支都是惟一的,从上至下逐一测试,直到匹配为止。
注意:虽说 case
表达式不能重复,可是若是 case
为布尔值,则能够重复。
package main import "fmt" func main() { a := false switch false { case a: fmt.Println("123") case a: fmt.Println("456") } }
执行结果:
123
下面来看一下通常的例子:
package main import "fmt" func main(){ date := 3 switch date { case 1: fmt.Println("周一") case 2: fmt.Println("周二") case 3: fmt.Println("周三") case 4: fmt.Println("周四") case 5: fmt.Println("周五") case 6: fmt.Println("周六") case 7: fmt.Println("周日") default: fmt.Println("无效的输入") } }
执行的结果:
周三
Go语言规定每一个 switch
只能有一个 default
分支。
一个分支能够有多个值,多个 case
值中间使用英文逗号分隔。
package main import "fmt" func main(){ num := 5 switch num { case 1, 3, 5, 7, 9: fmt.Println("num是奇数") case 2, 4, 6, 8, 10: fmt.Println("num是偶数") default: fmt.Println("num:", num) } }
执行的结果:
num是奇数
当 case
分支后面使用的是表达式时,switch
语句后面不须要在跟判断变量。
package main import "fmt" func main(){ score := 61 switch { case score > 80: fmt.Println("考得不错") case score >= 60: fmt.Println("努力学习吧") default: fmt.Println("还不学习?") } }
执行结果:
努力学习吧
fallthrough
会强制执行后面的一条case语句。
package main import "fmt" func main(){ num := 1 switch num { case 1: fmt.Println(1) fallthrough case 2: fmt.Println(2) case 3: fmt.Println(3) default: fmt.Println("...") } }
执行结果:
1 2
咱们使用 fallthrough
来执行多个 case
,也可使用 break
来终止。
package main import "fmt" func main(){ num := 1 switch num { case 1: fmt.Println(1) if num == 1 { break } fallthrough case 2: fmt.Println(2) case 3: fmt.Println(3) default: fmt.Println("...") } }
执行结果:
1
select
语句在后面会讲解。
欢迎访问个人我的网站:
李培冠博客:lpgit.com