一、switch语句和if语句的区别
switch语句和if语句都可用于分支条件的选择,但switch后面的控制表达式只能是byte、short、char、int、String和枚举类型,不能是boolean类型,if后面的控制表达式是boolean类型;switch语句中各个case标签后代码块的开始点和结束点非常清晰,因此完全可以省略case后代码块的花括号。

二、switch的使用及注意事项

为了更清晰的认识switch,下面通过一段程序来示范switch的用法:


public class TestSwitch {public static void main(String[] args) {//声明变量languageTypeString languageType = "Java";//执行switch语句switch (languageType) {case "C":System.out.println("C语言");break;case "Java":System.out.println("Java语言");break; case "C++":System.out.println("C++语言");break;case "Python":System.out.println("Python语言");break;default:System.out.println("语言类型输入错误");}}
}

运行上面的程序输出:Java语言。

因为定义的变量(switch后面的控制表达式)“languageType” 与"Java"匹配。

如果把上面程序中的每个case标签里的break语句去掉,将会发生什么样的结果呢?那么我先把每个break语句注释掉,运行结果如下:

Java语言 C++语言 Python语言 语言类型输入错误

输出结果是不是很奇怪!这正是switch语句的运行流程决定的,只要进入switch语句的入口,程序会一直运行下去,直到遇到break语句,如果省略了break语句,那么匹配case值后的所有情况(包括default)都会被执行。

所以,使用switch语句时,有两个值得注意的地方:

1)switch后面的控制表达式只能是byte、short、char、int、String和枚举类型;

2)如果省略了case后的代码块break,将会引入一个陷阱。

switch的使用及注意事项相关推荐

  1. switch语句使用时注意事项

    如下代码编译时编译器给出如下错误: error C2361: " default "标签跳过" temp1"的初始化操作 void main() { int i ...

  2. C语言switch分支结构

    文章目录 一.if else的不足 二.switch语句 三.注意事项 四.课后作业 五.版权声明 一.if else的不足 C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 ...

  3. 选择结构_穿透的switch语句

    case的穿透性 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束. public ...

  4. Java中的switch分支语句

    一.switch简介和语法 switch语句用于多分支选择,由一个控制表达式和多个case标签组成.switch语句后面的控制表达式的数据类型只能是byte.short.char.int.String ...

  5. javaSE基础04

    javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...

  6. c语言可作为程序分支的表达式,[计算机软件及应用]C语言程序设计4--李2012.ppt

    [计算机软件及应用]C语言程序设计4--李2012 输入三个字整数,输出其中最大的数(顺序) 方法二: main() { int a,b,c,t; scanf("%d,%d,%d" ...

  7. 第三周总结(2022.10.31~2022.11.4)

    目录 Day1 1.if...else...和三元运算符的区别? 2.if...else...嵌套 3.流程控制语句之switch(考点很多) 3.1什么是switch语句? 3.2switch语句中 ...

  8. C语言程序设计李,C语言程序设计4--李2012.ppt

    C语言程序设计4--李2012 输入三个字整数,输出其中最大的数(顺序) 方法二: main() { int a,b,c,t; scanf("%d,%d,%d",&a,&a ...

  9. Java 基础学习记录

    Java 基础 DAY1 1.关于进制的运算 2.关于存储单元 3.关于CMD的基本命令 4.JRE与JDK 5.Java环境变量 6.程序开发步骤 7.HelloWorld 8.标识符 9.常量 1 ...

最新文章

  1. Python程序设计题解【蓝桥杯官网题库】 DAY6-基础练习
  2. isamchk mysql_利用Myisamchk对MySQL数据表进行体检
  3. Simple DNS Plus 5.2 build 117
  4. 程序员们记得还是八五年PC登陆我国时候的事?
  5. html引入css webpack_深入剖析webpack——webpack 基础
  6. Python 类和实例
  7. RMAN备份与恢复资料
  8. 初中英语听力计算机考试反馈,【初中英语】英语听说机考,怎样才能有效提高英语听力和口语水平?...
  9. 机器人周志_机器人教学的意义
  10. html5手机页面工具,Html5技术变革下的H5页面制作工具和手机app开发工具
  11. 乐1s 乐视X501_官方线刷包_救砖包_解账户锁
  12. 从头开始学Tableau-第十七章(客户细分)
  13. linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...
  14. XYOj2113:找点(区间选点问题)
  15. Java反编译器JD
  16. python海龟绘图小猪佩奇_海龟绘图(Turtle Graphics)
  17. LSDyna在土木工程静力问题中的应用
  18. yum及yum-config-manager命令详解
  19. Android使用MediaCodec和OpenGL对多段视频画面进行裁剪和拼接
  20. 思岚科技Athena打破机器人底盘价格极限

热门文章

  1. 邓白氏码申请以及企业级账号申请流程
  2. Objective-C的方法替换
  3. 企业级运维——Mysql主从复制(异步、半同步、全同步)
  4. 信息化和信息系统(3)
  5. 树莓派驱动低成本双目VR摄像头
  6. 什么叫单模光纤_单模光纤和多模光纤有什么区别
  7. 让window10停止更新的办法
  8. Vue+PHP实现个人博客系统
  9. 玩转 Defcon 黑客大会,这里有份装 X 指南
  10. php高洛峰_PHP 验证码   高洛峰 细说PHP