条件语句 1年前

编程语言
990
条件语句

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后面可以跟上多个值
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2222967
累计阅读

热门教程文档

Flutter
105小节
Next
43小节
C#
57小节
React Native
40小节
QT
33小节