Go语言基础switch条件语句基本用法及示例详解

在这里插入图片描述

概述

  • 传入条件的不同,会执行不同的语句
  • 每一个case分支都是唯一的,从上到下逐一测试,直到匹配为止。

语法

第一种【switch 带上表达式】

switch 表达式 {

case 表达式1,表达式2, ... :

语句块1

case 表达式3, 表达式4, ... :

语名块2

default:

语句块

}

第二种【switch 不带表达式】

switch {

case 表达式1,表达式2, ... :

语句块1

case 表达式3, 表达式4, ... :

语名块2

default:

语句块

}

第三种【switch 初始化,表达式】

switch 初始化;表达式{

case 表达式1,表达式2, ... :

语句块1

case 表达式3, 表达式4, ... :

语名块2

default:

语句块

}

注意

  1. 各个case默认break
  2. 不break加 fallthrough
  3. panic 报错
  4. switch后可以没有表达式
  5. switch支持初始化语句,注意要用分号结束
  6. case后面的值是唯一的

示例一【根据今天的日期打印今天星期几】

func printWeekday() {

day := time.Now().Weekday() //需要导入time

fmt.Printf("%s", "今天")

switch int(day) {

case 1:

fmt.Println("星期一")

case 2:

fmt.Println("星期二")

case 3:

fmt.Println("星期三")

case 4:

fmt.Println("星期四")

case 5:

fmt.Println("星期五")

case 6, 7:

fmt.Println("星期天")

}

}

示例二【根据分数打印A,B,C,D】

func printScores() {

fmt.Println()

fmt.Println("根据分数打印A,B,C,D")

scores := 0

fmt.Println("请输入分数")

fmt.Scanf("%d", &scores)

fmt.Printf("分数等级:")

switch {

case scores > 90:

fmt.Println("A")

case scores > 80, scores > 70:

fmt.Println("B")

case scores > 60:

fmt.Println("c")

case scores >= 10:

fmt.Println("D")

default:

fmt.Println("你有分数吗")

}

}

示例三【算数】

func printEval() {

fmt.Println()

fmt.Println("三、算数")

var num1, num2 int

fmt.Println("请输入第一个数:")

fmt.Scan(&num1)

fmt.Println("请输入第二个数:")

fmt.Scan(&num2)

var op string

fmt.Println("请输入符号[+ - * /] ")

fmt.Scan(&op)

fmt.Printf("%d%s%d=%d", num1,op, num2, eval(num1, num2, op))

}

func eval(a, b int, op string) int {

var result int

switch op {

case "+":

result = a + b

case "-":

result = a - b

case "*":

result = a * b

case "/":

result = a / b

default:

panic("unsupported operator:" + op)

}

return result

}

以上就是Go语言基础switch条件语句基本用法及示例详解的详细内容,更多关于Go语言条件语句的资料请关注其它相关文章!

以上是 Go语言基础switch条件语句基本用法及示例详解 的全部内容, 来源链接: utcz.com/p/236377.html

回到顶部