go之switch
2024-08-31 02:22:54
switch 条件语句一
- 格式
switch initialization{
case v1:
// do something
case v2:
// do something
case v2:
// do something
default:
// do something
}
- 实例
package main
import "fmt"
var num = 12
func main(){
switch num {
case 1:
fmt.Println("num is 1")
case 2:
fmt.Println("num is 2")
case 3:
fmt.Println("num is 3")
default:
fmt.Println("num is default")
}
}
输出 num is default
switch 条件语句二
- 格式
switch {
case condition1:
// do somthing
case condition2:
// do something
case condition3:
// do something
default:
// do something
}
- 实例
package main
import "fmt"
var (
num1 int = 3
num2 = 5
)
func main(){
switch {
case num1 > num2:
fmt.Println("num1 大于 num2")
case num1 < num2:
fmt.Println("num1 小于 num2")
default:
fmt.Println("num1 == num2")
}
switch s := sum(num1,num2); {
case s < 10:
fmt.Println("num1 + num2 的和小于 10")
case s > 10:
fmt.Println("num1 + num2 的和 大于 10")
default:
fmt.Println("num1 + num2 的和 等于 10")
}
}
// 求和 返回 s
func sum(num1 int,num2 int)(s int){
s = num1 + num1
return
}
num1 小于 num2
num1 + num2 的和小于 10
fallthrough
- fallthrouth 的由来
在其他类型的语言,如php,switch 语句每一个case 结尾都应该加上一句break; 已表面该结束switch,防止继续往下一个case 执行。但是在go 语言中
是不需要加 break 的,因为每一个case 结束go编辑器都默认添加了break;
php 语言
switch ($num){
case 1:
// do something
break;
case 2:
// do something
break;
default:
// do something
}
go 语言
switch num {
case 1:
// do something
case 2:
// do something
default:
// do soment
}
// 因为go 编辑器自动添加了break;导致了程序不会跳到下一个case执行,所以go 给我们提供了一个关键字 fallthrough,可以在执行case 之后继续下一个case执行
- 实例
package main
import "fmt"
func main(){
Season(1) // 第一季
Season(3) // 第一季
Season(5) // 第二季
Season(6) // 第二季
Season(9) // 第三季
Season(11) // 第四季
Season(12) // 第四季
}
// 输入月份写季节
func Season(month int) {
switch month {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fmt.Println("第一季")
case 4,5,6: // go 中允许多val语句的写法,实际上和加了fallthrough 效果一样
fmt.Println("第二季")
case 7,8,9:
fmt.Println("第三季")
case 10:
fallthrough
case 11:
fallthrough
case 12:
fmt.Println("第四季")
}
}
最新文章
- 数据字典生成工具之旅(4):NPOI操作EXECL
- 将tomcat源码导入eclipse
- 断言--NSAssert
- NodeJS模块、包、NPM
- C#开发-ftp操作方法整理
- IPv6 tutorial – Part 7: Zone ID and unique local IPv6 unicast addresses
- Android基本组件-Activity
- ios 设备基本信息检测
- 201521123109《java程序设计》第四周学习总结
- 201521123093 java 第九周学习总结
- Hexo + GitHub Pages搭建博客
- Tomcat configuration DataSource
- MySQL表数据的增删改查
- [No0000127]WCF安全体系netTCPBinding绑定
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- delphi CreateAnonymousThread 匿名线程
- sliva数据库简介--转载
- git status出现 fatal: Not a git repository (or any of the parent directories): .git
- 《DSP using MATLAB》示例Example 8.3
- 【转】tnsping不通,则需设置TNS_ADMIN环境变量
热门文章
- centos7 安装zabbix3.4
- 基于python xlsxwriter、xlrd 生成测试报告
- Josephus problem(约瑟夫问题,丢手绢问题)
- 8.2.3 覆写 Equals
- kernel memory code learn
- VMware Workstation搭建Linux操作系统
- 66.零停机下reindex
- AtCoder ABC 085C/D
- [tsA1491][2013中国国家集训队第二次作业]家族[并查集]
- [USACO16OPEN]关闭农场Closing the Farm(洛谷 3144)