博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go之switch
阅读量:6852 次
发布时间:2019-06-26

本文共 2364 字,大约阅读时间需要 7 分钟。

switch 条件语句一

  • 格式
switch initialization{    case v1:    //  do something    case v2:    // do something    case v2:    // do something    default:    // do something}
  • 实例
package mainimport "fmt"var num = 12func 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 mainimport "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")    }}// 求和 返回 sfunc sum(num1 int,num2 int)(s int){    s = num1 + num1    return}
num1 小于 num2num1 + 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 mainimport "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("第四季")    }}

转载于:https://www.cnblogs.com/xiaobaiskill/p/10591089.html

你可能感兴趣的文章
iOS开发 图形变换-做一个正方体
查看>>
jhead命令详解
查看>>
OC中initialize方法和init方法的区别
查看>>
一些不可思议的小问题
查看>>
界面间传值
查看>>
3.vsphere client的安装
查看>>
Linux实现最常用的磁盘阵列-- RAID5
查看>>
简单的菜单 menu
查看>>
Intellij Idea 2017创建非Maven web项目使用tomcat部署实战
查看>>
工程DHCP配置
查看>>
GIL(全局解释器锁)与互斥锁
查看>>
我的友情链接
查看>>
Git常用操作及分支
查看>>
关于一种求最大公约数的算法的分析与证明
查看>>
微信授权莫名创建用户数据失败的原因
查看>>
网络高手修身
查看>>
JavaWeb综合案例-键盘模拟
查看>>
Android Day03-SQLite数据库操作及ListView详解
查看>>
Looking for APAC Operations IT XML Database Developer in Shenzhen and Hongkong
查看>>
Myeclipse常用快捷键
查看>>