Go 语言流程控制 选择结构 if
优质
小牛编辑
138浏览
2023-12-01
Go 语言流程控制和 C 语言一样,也有三大流程控制结构
- 顺序结构 默认结构
- 选择结构 if / switch
- 循环结构 for
选择结构 if
和C语言不同的的是
- 条件表达式的值必须是布尔类型(Go语言中没有非零即真的概念)
- 条件表达式前面可以添加初始化语句
- 不需要编写圆括号
- 左大括号必须和条件语句在同一行
第一种格式:条件表达式结果为 true,那么执行 if 后面 {} 中代码
if 初始化语句; 条件表达式{ 语句块; }
package main import "fmt" func main() { // 如果后续需要用到age变量, 可以将变量放到if外面 age := 18 if age >= 18{ fmt.Println("成年人") } }
package main import "fmt" func main() { // 如果后续不需要用到age变量, 可以将变量放到条件表达式前面 if age := 18; age >= 18{ fmt.Println("成年人") } }
第二种格式:
- 条件表达式结果为 true,那么执行 if 后面 {} 中代码
- 否则执行 else 后面 {} 中代码
if 初始化语句; 条件表达式{ 语句块; }else{ 语句块; }
package main import "fmt" func main() { if age := 18;age >= 18 { fmt.Println("成年人") }else{ fmt.Println("未成年人") } }
第三种格式:
- if后面条件表达式结果为true,那么执行if后面{}中代码
- 否则判断else if条件表达式是否为true,为true执行else if后面{}中代码
- 否则依次判断后续else if条件表达式是否为true,哪个为true就执行哪个else if后面{}中代码
- 都不满足则执行else后面{}中代码
if 初始化语句; 条件表达式{ 语句块; }else if 条件表达式{ 语句块; } ... ... else{ 语句块; }
package main import "fmt" func main() { if age := 18;age > 55{ fmt.Println("老年人") }else if age >= 40{ fmt.Println("中年人") }else if age >= 18{ fmt.Println("成年人") }else{ fmt.Println("未成年人") } }
值得一提的是Go语言中没有C语言中的三目运算符,所以C语言中三目能干的在Go语言中都只能通过 if else 的形式来完成