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

go之switch的更多相关文章

  1. Partition:分区切换(Switch)

    在SQL Server中,对超级大表做数据归档,使用select和delete命令是十分耗费CPU时间和Disk空间的,SQL Server必须记录相应数量的事务日志,而使用switch操作归档分区表 ...

  2. java中if和switch哪个效率快

    首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...

  3. [开源]QuickSwitchSVNClient,快速完成SVN Switch的工具

    在实际的开发中,我们一般使用SVN工具进行源代码的管理.在实际的产品开发中,根据项目的一些定制要求,往往需要对某一些代码的修改,但是又不想影响主要的开发,这个时候需要对当前的主分支做一些分支处理(br ...

  4. C#中,switch case语句中多个值匹配一个代码块的写法

    switch (num) { case 1: Response.Write("1"); break; case 2: case 3: Response.Write("2| ...

  5. Android Studio快捷键switch case 轻松转换为if else

    Android Studio快捷键switch case 轻松转换为if else 今天碰到的问题,没有找到资料,后面找到了方法,这个记下来,转载请注明出处:http://www.cnblogs.co ...

  6. 代码的坏味道(6)——Switch声明(Switch Statements)

    坏味道--Switch声明(Switch Statements) 特征 你有一个复杂的 switch 语句或 if 序列语句. 问题原因 面向对象程序的一个最明显特征就是:少用 switch  和 c ...

  7. java中的switch case

    switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...

  8. switch语句的妙用

    switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...

  9. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  10. JavaScript (If...Else和Switch和循环遍历) 语句以及常用消息框

    If...Else 语句 JavaScript中if...else语句和Java中的语法和使用方法是一样的. 只是在JavaScript中要使用小写字母.使用大写的 IF 会出错! 至于if...el ...

随机推荐

  1. jenkins执行python脚本

    参考: https://blog.csdn.net/qq_39247153/article/details/81003244 https://blog.csdn.net/huashao0602/art ...

  2. vue刷新本页面

    顶层app.vue页面 <template> <div id="app"> <router-view v-if="isRouterAlive ...

  3. 关于static关键字的思考

    静态方法是否能调用非静态成员变量?    static关键字具有如下特点:        一.static关键字修饰的属性/方法可以通过类名直接调用,而不必先new一个对象.        二.sta ...

  4. Nginx +tomcat 实现负载均衡集群

    一.       工具   nginx-1.8.0 apache-tomcat-6.0.33 二.    目标   实现高性能负载均衡的Tomcat集群: 三.    步骤   1.首先下载Nginx ...

  5. [C#] DataTable 操作汇总(持续更新)

    1.DataTable 分组操作 var grow = dt.Select().GroupBy((row1) => { return new { //分组的字段 fieldA = row1[&q ...

  6. 洛谷——P2657 [SCOI2009]windy数

    P2657 [SCOI2009]windy数 题目大意: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和 ...

  7. Sending Secret Messages LightOJ - 1404

    Sending Secret Messages LightOJ - 1404 Alice wants to send Bob some confidential messages. But their ...

  8. 面试:A

    分析 System.Collections.Generic.List<T> 的 Remove<T> 方法和 Clear 方法的实现细节(不允许使用“移除”“清除”这种概念模糊的 ...

  9. hdu 3500 DFS(限定)

    Fling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submi ...

  10. hdu2016 数据的交换输出【C++】

    数据的交换输出 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...