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("第四季")
}
}

最新文章

  1. 数据字典生成工具之旅(4):NPOI操作EXECL
  2. 将tomcat源码导入eclipse
  3. 断言--NSAssert
  4. NodeJS模块、包、NPM
  5. C#开发-ftp操作方法整理
  6. IPv6 tutorial – Part 7: Zone ID and unique local IPv6 unicast addresses
  7. Android基本组件-Activity
  8. ios 设备基本信息检测
  9. 201521123109《java程序设计》第四周学习总结
  10. 201521123093 java 第九周学习总结
  11. Hexo + GitHub Pages搭建博客
  12. Tomcat configuration DataSource
  13. MySQL表数据的增删改查
  14. [No0000127]WCF安全体系netTCPBinding绑定
  15. Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
  16. delphi CreateAnonymousThread 匿名线程
  17. sliva数据库简介--转载
  18. git status出现 fatal: Not a git repository (or any of the parent directories): .git
  19. 《DSP using MATLAB》示例Example 8.3
  20. 【转】tnsping不通,则需设置TNS_ADMIN环境变量

热门文章

  1. centos7 安装zabbix3.4
  2. 基于python xlsxwriter、xlrd 生成测试报告
  3. Josephus problem(约瑟夫问题,丢手绢问题)
  4. 8.2.3 覆写 Equals
  5. kernel memory code learn
  6. VMware Workstation搭建Linux操作系统
  7. 66.零停机下reindex
  8. AtCoder ABC 085C/D
  9. [tsA1491][2013中国国家集训队第二次作业]家族[并查集]
  10. [USACO16OPEN]关闭农场Closing the Farm(洛谷 3144)