go 语言基础 分支语句 switch

switch语句

1.普通switch语句

switch 变量{

case 数值1:
分支1
case 数值2:
分支2
case 数值3:
分支3
...
[default:
最后一个分支
]
}
package main

import "fmt"

func main() {
   /*
   switch语句
   switch var{
   case num1:
   case num2:
   case num3:
   ...
   default:
   }
    */
   num1 := 4
   switch num1 {

   case 3:
      fmt.Println("第三季度")
   case 4:
      fmt.Println("第四季度")
  
   case 1: // num1 == 1
      fmt.Println("第一季度")
   case 2:
      fmt.Println("第二季度")
   default:
      fmt.Println("我也不知道啦。。")
   }

   
}

用变量的数值,依次匹配case后的数值,和哪个匹配上,就执行哪个分支,如果都没有匹配上就执行default。。
case其实可以是无序的。
case后的数值不能重复。

2.switch可以省略变量
switch {//相当于true

}

3.case后的数值可以是多个
num:=0
switch num{
case 1,2,3,4:
}
4.switch也支持多一条初始化语句,用于初始化局部变量
switch num:= 0;num{

}

package main

import (
   "fmt"
)

func main() {
   //1.省略switch后的变量
   switch { //相当于true
   case true:
      fmt.Println("case后的数值是true。。")
   case false:
      fmt.Println("case后的数值是false。。")
   }
   score := 48
   switch {
   case score >= 90 && score <= 100:
      fmt.Println("优秀")
   case score >= 60 && score < 70:
      fmt.Println("及格")
   case score >= 80 && score < 90:
      fmt.Println("良好")
   case score >= 70 && score < 80:
      fmt.Println("中")
   case score >= 0 && score < 60:
      fmt.Println("不及格")
   }
   //2.case后有多个数值
   a := "A"
   switch a {
   case "A", "B","C","D":
      fmt.Println("A-D")
   case "E","F","G":
      fmt.Println("E-G")
   }
   score = 77
   switch score/10 { // 0,1,2,3,4,5,6,7,8,9,10
   case 9, 10:
      fmt.Println("优秀")
   case 8:
      fmt.Println("良好")
   case 7:
      fmt.Println("中")
   case 6:
      fmt.Println("及格")
   case 5,4,3,2,1,0: //default
      fmt.Println("不及格")
   }
   //3.switch也可以多条初始化语句,一般用于初始化局部变量

   switch s1:="go"; s1 {
   case "go":
      fmt.Println("golang..")
   case "java":
      fmt.Println("java")
   case "php":
      fmt.Println("php")
   case "python":
      fmt.Println("ptyhon")
   default:
      fmt.Println("玩去。。")
   }

}

swithc关键字
case:switch的其中一个条件

break:强制退出switch,无论匹配上的case分支,知否执行完毕。

default:如果所有case都不满足,就走default

fallthrough:用于穿透,

当匹配上某个case后,就执行该case内容,如果有fallthrough,下面紧邻的case直接执行

if和switch对比:
A:if语句仅作用在条件是bool,switch
B:if适合分支较少的情况。switch适合分支较多的情况。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值