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

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

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

标签: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
  • asp之家 网络编程 m.aspxhome.com