当前位置: 首页 > news >正文

GoLang教程005:switch分支

3.4 Switch分支

GoLand(其实是 JetBrains 开发的 Go 编程语言 IDE)中,switchGo 语言(Golang) 的一个重要控制结构,用于替代多个 if-else 语句。

✅ 特点说明

特性说明
自动 breakGo 的 switch 语句默认每个 case 执行完会自动跳出(无需写 break
支持多个匹配值可以在一个 case 中写多个值,用逗号分隔
支持表达式switchcase 都可以是表达式
支持 switch 省略表达式(等价于 switch true

✅ 基本语法

switch 表达式 {
case1:语句块1
case2:语句块2
default:默认语句块
}

🔹 示例一:基本用法

package mainimport "fmt"func main() {color := "red"switch color {case "red":fmt.Println("红色")case "blue":fmt.Println("蓝色")default:fmt.Println("未知颜色")}
}

🔸 输出

image-20250721233711610

🔹 示例二:多个匹配值

package mainimport "fmt"func main() {number := 3switch number {case 1, 3, 5:fmt.Println("奇数")case 2, 4, 6:fmt.Println("偶数")}
}

🔸 输出

image-20250721233746505

🔹 示例三:省略 switch 表达式(更像 if-else)

package mainimport "fmt"func main() {age := 20switch {case age < 18:fmt.Println("未成年人")case age >= 18 && age < 60:fmt.Println("成年人")default:fmt.Println("老年人")}
}

🔸 输出

image-20250721233846885

示例四:使用 fallthrough 强制执行下一个 case(不常用)

package mainimport "fmt"func main() {num := 1switch num {case 1:fmt.Println("一")fallthroughcase 2:fmt.Println("二")fallthroughcase 3:fmt.Println("三")}}

🔸 输出

image-20250721234016324

✅ 小结

功能说明
自动 break不像 Java/C,需要手动 break
可省略表达式支持 switch true {}
支持多个值case 1, 2, 3:
fallthrough手动执行下一个 case
http://www.xdnf.cn/news/1161361.html

相关文章:

  • Git核心功能简要学习
  • 面试总结第54天微服务开始
  • Neo4j graph database
  • 【数据结构与算法】数据结构初阶:详解二叉树(二)——堆
  • Vue3 面试题及详细答案120道 (1-15 )
  • Node.js的Transform 流
  • 2x2矩阵教程
  • 亚马逊自养号测评实战指南:从环境搭建到安全提排名
  • G1垃圾回收器
  • 复习博客:JVM
  • LVS 集群技术基础
  • Valgrind Cachegrind 全解析:用缓存效率,换系统流畅!
  • 【初识数据结构】CS61B中的最小生成树问题
  • 本地部署Nacos开源服务平台,并简单操作实现外部访问,Windows 版本
  • ZooKeeper学习专栏(四):单机模式部署与基础操作详解
  • ruoyi-flowable-plus Excel 导入数据 Demo
  • 【qml-3】qml与c++交互第二次尝试(类型方式)
  • (9)机器学习小白入门 YOLOv:YOLOv8-cls 技术解析与代码实现
  • uni-app 开发小程序项目中实现前端图片压缩,实现方式
  • Java基础面试题
  • Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙
  • 芯谷科技--固定电压基准双运算放大器D4310
  • kafka 日志索引 AbstractIndex
  • 智慧场景:定制开发开源AI智能名片S2B2C商城小程序赋能零售新体验
  • Web开发:ABP框架12——中间件Middleware的创建和使用
  • delphi disqlite3 操作sqlite
  • 通信刚需小能手,devicenet转PROFINET网关兼容物流分拣自动化
  • 【Elasticsearch】IndexModule
  • 【Elasticsearch】BM25的discount_overlaps参数
  • SVM(Support Vector Machine)从入门到精通