Go语言中的if语句根据条件表达式的结果选择需要执行的业务流程。
1、if控制语句
1、if 语法
语法详情如下:
if 条件表达式 { // 条件表达式为true,执行的代码块 }
条件表达式必须返回布尔型的结果,与Java语法不同,在Go中,if的条件表达式不使用括号。
2、if/else 语法
语法详情如下:
if 条件表达式 { // 条件表达式为true,执行的代码块 } else { // 条件表达式为false,执行的代码块 }
3、if/else if/else 语法
语法详情如下:
if 条件表达式1 { // 条件表达式1为true,执行的代码块 }else if 条件表达式2 { // 条件表达式2为true,执行的代码块 }else { // 条件表达式1、条件表达式2都为false,执行的代码块 }
4、if嵌套 语法
语法详情如下:
if 条件表达式1 { // 条件表达式1 为true时执行 if 布尔表达式2 { // 条件表达式2 为true时执行 } }
5、示例代码
1 package main 2 3 import "fmt" 4 5 // if 条件控制语句 6 func conditionIf() { 7 // 布尔型变量 if 8 flag := true 9 if flag { 10 fmt.Printf("conditionIf ==> flag: %v\n", flag) 11 } 12 } 13 14 // if/else 条件控制语句 15 func conditionIfElse() { 16 // 返回结果为布尔型的条件表达式 17 age := 12 18 if age >= 18 { 19 fmt.Printf("age: %v,已成年\n", age) 20 } else { 21 fmt.Printf("age: %v,未成年\n", age) 22 } 23 } 24 25 // if 嵌套 26 func nestIf() { 27 flag := true 28 flag01 := false 29 30 if flag { 31 fmt.Printf("nestIf ==> flag: %v\n", flag) 32 // if 嵌套 33 if flag01 { 34 fmt.Printf("nestIf ==> flag: %v\n", flag01) 35 } else { 36 fmt.Printf("nestIf ==> flag: %v\n", flag01) 37 } 38 }else { 39 fmt.Printf("nestIf ==> flag: %v\n", flag) 40 } 41 } 42 43 // if/elseif/else 条件控制语句 44 func conditionIfElseIfElse() { 45 score := 60.5 46 // 条件表达式1 47 if score < 60 { 48 fmt.Printf("score: %v,不合格\n", score) 49 50 // 条件表达式2 51 } else if score >= 60 && score < 70 { 52 fmt.Printf("score: %v,合格\n", score) 53 54 // 条件表达式3 55 } else if score >= 70 && score <= 80 { 56 fmt.Printf("score: %v,良好\n", score) 57 58 // 条件表达式 1、2、3 都不成立 59 } else { 60 fmt.Printf("age: %v,优秀\n", score) 61 } 62 } 63 64 func main() { 65 conditionIf() 66 conditionIfElse() 67 conditionIfElseIfElse() 68 nestIf() 69 }
2、switch控制语句
1、switch语法
switch语句可以判断有多个值的情况,语法详情如下:
switch var1 { case var2: // do something case var3: // do something // var2、var3条件不成立时,执行default default: // do something }
var2、var3可以是具体的值,也可以是条件表达式。当case中的条件都不满足时,执行default的流程。
switch语句支持多条件匹配,并且不同的case之间不使用break分隔,默认只会执行一个case。
2、示例代码
1 package main 2 3 import "fmt" 4 5 // switch 中 case 匹配具体值,单值 6 func caseSingleValue() { 7 //grade := "A" 8 grade := "D" 9 switch grade { 10 case "A": 11 fmt.Printf("优秀\n") 12 case "B": 13 fmt.Printf("良好\n") 14 case "C": 15 fmt.Printf("合格\n") 16 default: 17 fmt.Printf("不合格\n") 18 } 19 } 20 21 // switch 中 case 匹配具体值,多值 22 func caseMultiValue() { 23 var day int 24 fmt.Println("请输入周几") 25 // 输入周几 26 fmt.Scan(&day) 27 switch day { 28 case 1, 2, 3, 4, 5: 29 fmt.Println("工作日") 30 case 6, 7: 31 fmt.Println("周末") 32 default: 33 fmt.Println("工作日") 34 } 35 } 36 37 // switch 中 case 匹配条件表达式 38 func switchCondition() { 39 score := 70.5 40 switch { 41 case score >= 90 && score <= 100: 42 fmt.Printf("优秀\n") 43 case score >= 70 && score < 90: 44 fmt.Printf("良好\n") 45 case score >= 60 && score < 70: 46 fmt.Printf("合格\n") 47 default: 48 fmt.Printf("不合格\n") 49 } 50 } 51 52 func main() { 53 caseSingleValue() 54 caseMultiValue() 55 switchCondition() 56 }标签:语句,case,fmt,笔记,else,score,Printf,Go,表达式 From: https://www.cnblogs.com/RunningSnails/p/17305151.html