switch结构介绍

  • switch也属于条件判断的语句

  • 支持多种写法,和if .. else if ...else 结构的功能类似,但是里面的细节需要注意的地方更多

  • switch基本语法

switch [定义变量;] [变量]{
case [条件/具体值]:
//代码
case [条件/具体值]:
//代码
default:
//代码
}
  • switch每个case分支默认只执行一个且是从上向下执行

  • default上下位置没有影响,当且仅当所有case都不成立时才执行default

switch用法(一)

  • 当变量只有固定的几个值时可以使用switch结构

func main() {
num :=
switch num {
case :
fmt.Println("2进制")
case :
fmt.Println("8进制")
case :
fmt.Println("10进制")
case :
fmt.Println("16进制")
default:
fmt.Println("内容不正确")
}
fmt.Println("程序结束")
}
  • switch也支持在条件位置定义变量,变量有效范围为当前switch
func main() {
switch num := ; num {
case :
fmt.Println("2进制")
case :
fmt.Println("8进制")
case :
fmt.Println("10进制")
case :
fmt.Println("16进制")
default:
fmt.Println("内容不正确")
}
fmt.Println("程序结束")
}

switch用法(二)

  • 当条件是范围而不是固定值时

func main() {
score :=
switch {
case score >= :
fmt.Println("优秀")
case score >= :
fmt.Println("良好")
case score >= :
fmt.Println("中等")
case score >= :
fmt.Println("及格")
default:
fmt.Println("不及格")
}
fmt.Println("程序结束")
}

switch用法(三)

  • case条件支持多个值,每个值使用逗号分开

func main() {
month :=
switch month {
case , , , , , , :
fmt.Println("31天")
case :
fmt.Println("28或29天")
default:
fmt.Println("30天")
}
fmt.Println("程序结束")
}

穿透和中断

  • switch结构中某个最多只能执行一个case,使用fallthrough可以让下一个case/default继续执行

func main() {
switch num := ; num {
case :
fmt.Println("")
fallthrough
case :
fmt.Println("")
case :
fmt.Println("")
fallthrough
case :
fmt.Println("")
default:
fmt.Println("不是1,2,3,4")
}
fmt.Println("程序结束")
}
  • break可以用在switch和循环中,表示立即结束,无论当前结构后面还有多少代码
func main() {
switch num := ; num {
case :
fmt.Println("")
break
fmt.Println("break后面代码都不执行")
fallthrough
case :
fmt.Println("")
case :
fmt.Println("")
fallthrough
case :
fmt.Println("")
default:
fmt.Println("不是1,2,3,4")
}
fmt.Println("程序结束")
}

switch结构的更多相关文章

  1. c语言学习之基础知识点介绍(六):if和switch结构

    本节主要说c语言中的分支结构. c语言中分支结构有两大类:一种是if,一种是switch. 一.if结构 //if结构,语法: //第一种: if(表达式){ //语句块 } //第二种: if(表达 ...

  2. switch结构可以更好的解决等值判断问题

    switch 选择结构的语法:switch (表达式){case 常量 1://代码块1:break;case 常量 2://代码块2:break;......default://代码块n:break ...

  3. 经验之谈-switch结构常见错误的分析与处理

    1.缺少break语句 本来只想输出“出任武林盟主”可输出结果为 错误分析:在 switch结构中,每一个case语句块后面如果不写 break语句, switch就会 直接往下面的case语句块运行 ...

  4. 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

    038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...

  5. 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构

    037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...

  6. Java初学者作业——使用switch结构实现一个简单的购物计划

    返回本章节 返回作业目录 需求说明: 使用switch结构实现一个购物计划,计划为:星期一.星期三.星期五购买伊利牛奶和面包,星期二.星期四购买苹果和香蕉,星期六.星期日购买啤酒和周黑鸭. 实现思路: ...

  7. java中switch结构和 while for循环的用法

    6.2 switch结构:    变量可以是:variable can be:(mark: tried, can not be long) char/int/short/byte(java1.7 就可 ...

  8. switch结构2016/03/08

    Switch  03/08 一.结构 switch(){  case *: ;break;……default: ;brek;} 练习:输入一个日期,判断这一年第几天? Console.Write(&q ...

  9. 关于Switch结构利用

    三大流程结构,循环.分支.if ,循环与条件选择结构用的比较多,而swicth用的比较少,swicth可以用if代替,只不过麻烦,最终都能实现输入和输出的条件对应     Swicth利用       ...

随机推荐

  1. Map对象,Set对象使用(2)

    今天重点见一下Set Set 在我印象里它主要就是去重,Set 是一个值的集合,这个集合中所有的值仅出现一次 Set 属性size:和Map的size一样,返回成员的总数 Set的方法: Set.pr ...

  2. linux netfilter

    yum -y install iptables//三张表 filter nat mangle [root@wang /]# iptables -t filter -nvL [root@wang /]# ...

  3. 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用

    目录 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用 23.1 跳出循环 23.1.1 break和continue 23.2 Shift参数左移指令 23.3 函数 ...

  4. The Maze II

    There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...

  5. Sumitomo Mitsui Trust Bank Programming Contest 2019 Task F. Interval Running

    Link. There is a nice approach to this problem that involves some physical insight. In the following ...

  6. 网络编程[第三篇]基于tcp协议实现远程连接

    需要用到subprogress模块来远程控制cmd控制台程序来得到控制台的输出信息 一.服务端 —— 控制输出信息 import socket import subprocess #socket实例化 ...

  7. 第十四章 ZYNQ TIMER定时器中断

      上篇文章实现了了PS接受来自PL的中断,本片文章将在ZYNQ的纯PS里实现私有定时器中断.每隔一秒中断一次,在中断函数里计数加1,通过串口打印输出. 本文所使用的开发板是Miz702 PC 开发环 ...

  8. Linux weblogic启停

    一般weblogic启停在windows下很方便使用图标方式.但是在linux下需要杀掉weblogic进程才能真正关掉weblogic. 1.查询weblogic进程 ps -ef | grep & ...

  9. docker 入门4 - 群 【翻译】

    开始,第 4 部分:群 先决条件 安装 Docker 版本 1.13 或更高版本. 获取第 3 部分先决条件中所述的 Docker Compose. 获取 Docker Machine, Mac 的 ...

  10. JAVA学习篇--静态代理VS动态代理

    本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢? 原因: 1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者 ...