条件语句

Go语言条件语句

Go语言的条件语句有 ifswitch两种。

而且Go语言的表达式,可以不用跟 括号( ) , 比如 if a > 10 { ... }

下面来介绍这两种条件语句

1. if 条件语句

条件语句需要开发者指定一个或者多个条件

条件为 true,执行相应的操作

条件为 false,执行另外的操作

如下

package main import "fmt" func main() { number := 10 // 假设这个数为 10 if number > 0 { fmt.Println("这个数是正数") } else if number < 0 { fmt.Println("这个数是负数") } else { fmt.Println("这个数是零") } }

1.1 单个 if 条件

if 语句后面跟一个或者多个表达式。

语法如下:

if 表达式 { // 表达式为 true 时执行的操作 }

注意:

  • if 后的表达式,没有 ( )
  • 每个条件的 { } 是必须的,哪怕只有一行代码

示例如下:

package main import "fmt" func main() { score := 70 if score > 60 { fmt.Println("及格了") } } //输出: 及格了

上面的例子只有单个条件,如果 score 小于 60 ,想打印“没有及格”,可以用 if ... esle 语句

1.2 if … else… 语句

if ... else... 语句,在条件为 true 时,执行 if 后面的操作,条件为 false 时,执行 else后面的操作

语法如下:

if 条件 { //条件成立时的操作 } else { //条件不成立时的操作 }

示例:还是上面的例子

package main import "fmt" func main() { score := 40 if score > 60 { fmt.Println("及格了") } else { fmt.Println("没有及格") } } //输出:没有及格

注意: else 后面的 { 不能独占一行,否则编译不过。

正确的格式

if ... { } else { }

1.3 if …else if … else… 语句

这种情况就是有多个条件,分别测试每个条件是否为 true,如果某个条件为 true,执行相应的操作,后面的条件不再判断

如果所有的条件都不成立,就执行 else 操作

语法如下:

if 条件1 { 操作1 } else if 条件2 { 操作2 } else if 条件N { 操作N } else { 都不满足,执行此操作 }

示例如下:

package main import "fmt" func main() { day := 5 if day == 1 { fmt.Println("星期一") } else if day == 2 { fmt.Println("星期二") } else if day == 3 { fmt.Println("星期三") } else if day == 4 { fmt.Println("星期四") } else if day == 5 { fmt.Println("星期五") } else if day == 6 { fmt.Println("星期六") } else if day == 7 { fmt.Println("星期天") } else { fmt.Println("输入有误") } } //输出: 星期五

2 switch 条件语句

switch语句基于不同的条件执行不同的case操作,每个case都是唯一的,从上至下依次测试,直到匹配为止

switch 语句从上至下依次匹配,匹配成功后,跳出 switch语句,不会再匹配后面的case,所以不用在每个 case后面添加break

因为 Go语言的 switch语句,是自带 break

语法如下:

switch variable { case value1: ... case value2: ... case valueN: ... default: ... }

示例如下:

我们把上面的 打印星期几的例子改造一下,如下:

package main import "fmt" func main() { day := 5 switch day { 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("输入有误") } } //输出:星期五

2.1 switch支持多条件匹配

switch语句后面跟 casecase后面跟上值,上面的例子,后面只有一个值

case后面也是可以跟多个值的,只要满足其中一个,就会执行相应的操作

如果所有的条件都不成立 ,则执行 default后面的操作

语法如下:

switch { case: 1,3,5: ... case: 2,4,6: ... default: ... }

示例如下:

package main import "fmt" func main() { var n = 6 switch n { case 1, 3, 5: fmt.Println("这是奇数") case 2,4,6: fmt.Println("这是偶数") default: fmt.Println("未知") } } //输出:这是偶数

小结

上面介绍了 Go语言的条件语句,现简单总结如下:

  • Go语言条件语句,有两种,分别是 ifswitch
  • if 条件语句有 3 种形式
    1. if 单个条件
    2. if...else...条件
    3. if ... else if ... else... 多条件
  • 表达式不需要添加 ( )
  • 条件后面的 { }是不能省略的,哪怕只有一条语句,也不能省略
  • else 后面的 { 不能单独占一行,否则编译报错
  • switch语句后面可以跟多个 case语句
  • switch从上至下依次匹配 case,匹配成立后,执行相应的case语句
  • switch匹配到 case后,执行相应的操作,之后,不会再匹配下面的case,所以不用写 break
  • switchcase后面可以跟上多个值