网络编程
位置:首页>> 网络编程>> Go语言>> Go语言基础switch条件语句基本用法及示例详解

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

作者:枫少文  发布时间:2024-04-26 17:33:30 

标签:Go语言,基础,switch,条件语句

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
}

来源:https://blog.csdn.net/guofeng93/article/details/90803975

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com