go语言中的if语句和其他语言中的类似,都是根据给定的条件表达式运算结果来,判断执行流程。go语言if语句语法if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } 注意:在go语言中 布尔表达式不用使用括号。go语言if语句实例演示 根据布尔值flag判断import "fmt" func test1() { var flag = true if flag { fmt.Println("flag is true") } fmt.Printf("程序运行结束") } func main() { test1() } 程序运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" flag is true 程序运行结束 初始变量可以声明在布尔表达式里面,注意它的作用域package main import "fmt" func test3() { if age := 20; age > 18 { fmt.Println("你是成年人") } fmt.Printf("程序运行结束") } func main() { test3() } 程序运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" 你是成年人 程序运行结束 注意:不能使用0或非0表示真假 go语言if语句使用提示:不需使用括号将条件包含起来大括号{}必须存在,即使只有一行语句左括号必须在if或else的同一行在if之后,条件语句之前,可以添加变量初始化语句,使用;进行分隔 go语言中的if else语句可以根据给定条件二选一。go语言的if else语句语法if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }go语言if else语句实例 比较两个数的大小package main import "fmt" func f1() { a := 1 b := 2 if a > b { fmt.Printf(""a>b": %v ", "a>b") } else { fmt.Printf(""a<=b": %v ", "a= 18 { fmt.Println("你是成年人") } else { fmt.Println("你还未成年") } } func main() { f3() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" 你是成年人 特殊写法,在if前面添加执行语句package main import "fmt" func f4() { if age := 20; age >= 18 { fmt.Println("你是成年人") } else { fmt.Println("你还未成年") } } func main() { f4() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" 你是成年人 go语言if语句使用提示:不需使用括号将条件包含起来大括号{}必须存在,即使只有一行语句左括号必须在if或else的同一行在if之后,条件语句之前,可以添加变量初始化语句,使用;进行分隔 go语言if语句可以进行多重嵌套使用,进行多重判断。go语言中的if else if语法if 布尔表达式1 { // do something } else if 布尔表达式2 { // do something else }else { // catch-all or default }go语言中的if else if语法实例 根据分数判断等级package main import "fmt" func f5() { score := 80 if score >= 60 && score <= 70 { fmt.Println("C") } else if score > 70 && score <= 90 { fmt.Println("B") } else { fmt.Println("A") } } func main() { f5() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" B 同样也可以写成这样package main import "fmt" func f5() { if score := 80; score >= 60 && score <= 70 { fmt.Println("C") } else if score > 70 && score <= 90 { fmt.Println("B") } else { fmt.Println("A") } } func main() { f5() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" B 输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母package main import "fmt" func f6() { // Monday Tuesday Wednesday Thursday Friday Saturday Sunday var c string fmt.Println("输入一个字符:") fmt.Scan(&c) if c == "S" { fmt.Println("输入第二个字符:") fmt.Scan(&c) if c == "a" { fmt.Println("Saturday") } else if c == "u" { fmt.Println("Sunday") } else { fmt.Println("输入错误") } } else if c == "F" { fmt.Println("Friday") } else if c == "M" { fmt.Println("Monday") } else if c == "T" { fmt.Println("输入第二个字符:") fmt.Scan(&c) if c == "u" { fmt.Println("Tuesday") } else if c == "h" { fmt.Println("Thursday") } else { fmt.Println("输入错误") } } else if c == "W" { fmt.Println("Wednesday") } else { fmt.Println("输入错误") } } func main() { f6() } 运行结果guoliangs-MacBook-Pro-15-inch:pro01 guoliang$ go run test.go 输入一个字符: M Monday go语言if语句可以嵌套多级进行判断。go语言if嵌套语法if 布尔表达式 1 { /* 在布尔表达式 1 为 true 时执行 */ if 布尔表达式 2 { /* 在布尔表达式 2 为 true 时执行 */ } }go语言if嵌套实例 判断三个数的大小package main import "fmt" // a>b a>c a // b>a b>c b else c func f1() { a := 100 b := 200 c := 3 if a > b { if a > c { fmt.Println("a最大") } } else { if b > c { fmt.Println("b最大") } else { fmt.Println("c最大") } } } func main() { f1() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/tempCodeRunnerFile.go" b最大 判断男生还是女生,还有是否成年package main import "fmt" // a>b a>c a // b>a b>c b else c func f2() { // 判断男女生及年龄 gender := "女生" age := 16 if gender == "男生" { fmt.Println("男生") if age > 18 { fmt.Println("成年") } else { fmt.Println("未成年") } } else { fmt.Println("女生") if age > 18 { fmt.Println("成年") } else { fmt.Println("未成年") } } } func main() { f2() } 运行结果[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go" 女生 未成年