GO学习 switch用法

switch分支语句

packagemainimport”fmt”funcmain(){/*

  switch语句:

  语法结构:

    switch 变量名{

    case 数值1:分支1

    case 数值2:分支2

    case 数值3:分支3

    、、、

    default:

      最后一个分支

    }

  注意事项:

    1.switch可以作用在其他类型上,case后的数值必须和switch作用的变量类型一致

    2.case是无序的

    3.case后的数值是唯一的(duplicate case 3 in switch)

    4.deault的语句是可选的操作

  */

num :=3

switch    num{

case1:    

    fmt.Println(“第一”)

case2:   

     fmt.Println(“第二”)

case3:   

    fmt.Println(“第三”)

case4:    

    fmt.Println(“第四”)

default:    

    fmt.Println(“数据有误。。。”)  

}

//模拟计算器

num1 :=0

num2 :=0

oper :=””

fmt.Println(“请输入一个整数:”) 

 fmt.Scanln(&num1) 

 fmt.Println(“请再次输入一个整数:”) 

 fmt.Scanln(&num2)  

fmt.Println(“请输入一个操作:+,-,*,/”)  

fmt.Scanln(&oper)

switch    oper{

case”+”:    

    fmt.Printf(“%d + %d = %dn”,num1,num2,num1+num2)

case”-“:   

     fmt.Printf(“%d – %d = %dn”,num1,num2,num1-num2)

case”*”: 

     fmt.Printf(“%d * %d = %dn”,num1,num2,num1*num2)

case”/”:    

    fmt.Printf(“%d / %d = %dn”,num1,num2,num1/num2)  } }

运行输出:

第三

请输入一个整数:50

请再次输入一个整数:35

请输入一个操作:+,-,*,/

50-35=15

Processfinishedwithexitcode0

switch其他用法

packagemainimport”fmt”funcmain(){/*

  1.switch的标准写法:

  switch 变量{

  case 数值1:分支1

  case 数值2:分支2

  …

  default:

    最后一个分支

  }

  2.省略switch后的变量,相当于直接作用在true上

  switch{//true

  case true:

  case false:

  }

  3.case后可以同时跟随多个数值

  switch 变量{

  case 数值1,数值2,数值3:

  case 数值5,数值6:

  }

  4.switch后可以多一条初始化语句

  switch 初始化语句;变量{

  }

  */

switch{

case    true:    

    fmt.Println(“true…”)

case    false:   

     fmt.Println(“false…”)  }

/*

  成绩:

  [0-59],不及格

  [60-69],及格

  [70-79],中

  [80-89],良好

  [90-100],优秀

  */

score :=88

switch{

case    score >=0&& score

     fmt.Println(“不及格”)

case    score >=60&& score

      fmt.Println(“及格”)

case    score >=70&& score

     fmt.Println(“中”)

case    score >=80&& score

     fmt.Println(“良好”)

case    score >=90&& score

      fmt.Println(“优秀”)

default:   

     fmt.Println(“成绩有误”) 

 } 

 fmt.Println(“__________________________”)

  letter :=”A”

switch    letter{

case”A”,”E”,”I”,”O”,”U”:  

      fmt.Println(letter,”是元音”)

case”M”,”N”:    

    fmt.Println(“M或N”)

default:   

     fmt.Println(“其他”) 

 } 

 fmt.Println(“判断N年N月是几天”)

/*

  31天数月份

  1,3,5,7,8,10,12

  30天数月份

  4,6,9,11

  特殊2月:28/29

  */

year :=0

fmt.Println(“请输入年份:”)

  fmt.Scanln(&year) 

 month :=0

fmt.Println(“请输入月份:”) 

 fmt.Scanln(&month) 

 days :=0

switch    month{

case1,3,5,7,8,10,12:   

     days =31

case4,6,9,11:    

    days =30

case2:

    if    year %400==0|| year %4==0&& year %100!=0{      

            days =29

    }else{     

         days =28

    }

default:  

      fmt.Println(“月份错误”)  

}  

fmt.Printf(“%d 年 %d 月 的天数是:%d n”,year,month,days)

//4

switch    language :=”golang”;language{

case”golang”:  

     fmt.Println(“Go语言”)

case”java”:   

     fmt.Println(“JAVA语言”)

case”python”:    

    fmt.Println(“python语言”)  }

}

输出运行:

true…

良好

__________________________

A是元音

判断N年N月是几天

请输入年份:5482

请输入月份:5

5482年5月的天数是:31

Go语言

Processfinishedwithexitcode0

switch中break和fallthrough

package main

import”fmt”

funcmain(){

/*

  switch中的break和fallthrough语句

  break:可以使用在switch中,也可以使用在for循环中

    强制结束case语句,从而结束switch分支

  fallthrough:用于穿透switch

    当switch中某个case匹配成功之后,就执行该case语句

    如果遇到fallthrough,那么后面紧邻的case,无需匹配,执行穿透执行。

    fallthrough应该位于某个case的最后一行

  */

n :=2

switchn{

case1:    

    fmt.Println(“我是熊大”)   

     fmt.Println(“我是熊大”)   

     fmt.Println(“我是熊大”)

case2:   

 fmt.Println(“我是熊二”)   

 fmt.Println(“我是熊二”)

break

fmt.Println(“我是熊二”)

case3:   

fmt.Println(“我是光头强”)  }  

fmt.Println(“____________________________”)  

m :=2

switchm{

case1:    

    fmt.Println(“一月”)

case2:    

    fmt.Println(“二月”)

    fallthrough

case3:   

     fmt.Println(“三月”)

case4:    

    fmt.Println(“四月”)  }}

运行输出:

我是熊二

我是熊二

____________________________

二月

三月

Process finished with exit code 0

读完点个赞,给我的坚持更新注入新的活力。

2022.05.06 日更 62/365 天

公众号:3天时间

DevOpsgolang后端技术

Go并发和协程池

2022-6-4 10:49:46

golang后端技术服务器开发

golang监控Redis过期事件

2022-6-4 10:52:13

搜索