Go语言基础switch条件语句基本用法及示例详解
作者:枫少文 时间:2024-04-26 17:33:30
概述
传入条件的不同,会执行不同的语句
每一个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:
语句块
}
注意
各个case默认break
不break加 fallthrough
panic 报错
switch后可以没有表达式
switch支持初始化语句,注意要用分号结束
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
标签:Go语言,基础,switch,条件语句
0
投稿
猜你喜欢
MySQL中join语句怎么优化
2024-01-15 20:53:35
WxPython界面利用pubsub如何实现多线程控制
2021-01-28 08:10:03
Python基础之模块详解
2023-02-24 23:23:52
mysql中自增auto_increment功能的相关设置及问题
2024-01-16 09:34:13
Microsoft SQL Server 2000安装问题集锦
2008-12-10 14:26:00
Python图像处理库PIL的ImageFont模块使用介绍
2023-12-20 10:30:42
Python如何使用vars返回对象的属性列表
2022-03-13 02:34:49
MySQL借助DB实现分布式锁思路详解
2024-01-16 03:17:13
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2024-05-11 10:49:24
简单方法实现Vue 无限滚动组件示例
2023-07-02 16:50:14
python调用subprocess模块实现命令行操作控制SVN的方法
2022-07-18 02:01:03
Python 用turtle实现用正方形画圆的例子
2022-08-05 13:56:33
获取mssql的xml返回结构的方法
2007-08-23 12:52:00
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2024-04-29 13:12:45
js实现黑白div块画空心的图形
2023-08-29 07:24:21
php中防止SQL注入的最佳解决方法
2023-08-19 21:52:20
小看了setTimeout()
2009-12-04 12:44:00
python 实现体质指数BMI计算
2023-01-25 12:44:56
Oracle 触发器的使用小结
2009-05-24 19:54:00
Python动态加载模块的3种方法
2023-12-22 21:33:29