六、条件语句

条件语句

1、if else语句

代码示例

package main
 
import "fmt"
 
func main() {
    //if else语句
    age := 18
    if age < 5 {
        fmt.Println("你的age为:", age, ",你太小了无法进入")
    } else if age < 18 {
        fmt.Println("你的age为:", age, ",你虽然不小了,但是仍然未满18,无法进入")
    } else {
        fmt.Println("你的age为:", age, ",你已满18岁,可以进入")
    }
}

查看运行结果
在这里插入图片描述

2、if嵌套语句

计算可以数字a在0-100内,且是否可以被5整除
代码示例

package main
 
import "fmt"
 
func main() {
    a := 100
    //if嵌套
    if a <= 100 {
        fmt.Println("a的值符合条件1:在0~100内,为:", a)
    if a%5 == 0 {
        fmt.Println("a的值符合条件2:可以被5整除,为:", a)
    } else {
        fmt.Println("a的值不符合条件2:不可以被5整除,为:", a)
    }
    } else {
        fmt.Println("a的值不符合条件1:非在0~100内,为:", a)
    }
}

查看运行结果
在这里插入图片描述

3、switch语句

  1. switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
    witch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case

    代码示例
package main
 
import "fmt"
 
func main() {
    //3.switch case语句
    score := 75
    var grade string
    switch {
    case score < 60:
        grade = "C"
    case score >= 60 && score < 80:
        grade = "B"
    case score >= 80:
        grade = "A"
    }
    fmt.Println(grade)
 
}

查看运行结果
在这里插入图片描述

  1. switch+case-fallthrough
    使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
    代码示例
package main
 
import "fmt"
 
func main() {
    score := 95
    var grade string
    switch {
    case score < 60:
        grade = "C"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    case score >= 60 && score < 80:
        grade = "B"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    case score >= 80:
        grade = "A"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    }
    fmt.Println(grade)
}

查看运行结果
在这里插入图片描述

  1. switch+default
    default 无论放在哪里都会最后执行
    代码示例
package main
 
import "fmt"
 
func main() {
    score := 200
    var grade string
    switch {
    default:
        grade = "Nothing"
        fmt.Printf("你的成绩为%d,并不合法,最终grade为%s", score, grade)
    case score < 60:
        grade = "C"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    case score >= 60 && score < 80:
        grade = "B"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    case score >= 80 && score <= 100:
        grade = "A"
        fallthrough
    case false:
        fmt.Println("使用fallthrough语句跳入到了下一步打印此句,因为您的成绩为:", grade)
    }
}

查看运行结果
在这里插入图片描述

4、select语句

select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收。
select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。

代码示例

package main
 
import "fmt"
 
func main() {
 
    var c1, c2, c3 chan int
    var i1, i2 int
    select {
    case i1 = <-c1:
        fmt.Printf("received ", i1, " from c1\n")
    case c2 <- i2:
        fmt.Printf("sent ", i2, " to c2\n")
    case i3, ok := (<-c3): // same as: i3, ok := <-c3
    if ok {
        fmt.Printf("received ", i3, " from c3\n")
    } else {
        fmt.Printf("c3 is closed\n")
    }
    default:
        fmt.Printf("no communication\n")
    }
 
}

查看运行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值