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

时间:2022-09-06 18:29:53

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

概述

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

语法

第一种【switch 带上表达式】

?
1
2
3
4
5
6
7
8
switch 表达式 {
  case 表达式1,表达式2, ... :
     语句块1
  case 表达式3, 表达式4, ... :
     语名块2
  default:
     语句块
}

第二种【switch 不带表达式】

?
1
2
3
4
5
6
7
8
switch {
  case 表达式1,表达式2, ... :
     语句块1
  case 表达式3, 表达式4, ... :
     语名块2
  default:
     语句块
}

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

?
1
2
3
4
5
6
7
8
switch 初始化;表达式{
  case 表达式1,表达式2, ... :
     语句块1
  case 表达式3, 表达式4, ... :
     语名块2
  default:
     语句块
}

注意

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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】

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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("你有分数吗")
    }
}

示例三【算数】

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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语言条件语句的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/guofeng93/article/details/90803975