switch  case语句适用于从一组互斥的分支中选择一个执行分支。

int day = 0;
switch (day)
{
 case :
  dayName = "Sunday";
  break;
 case :
 case :
  dayName = "Tuesday";
  break;
 ...
 default :
  dayName = "Unknown";
  break;
}

switch 语句中的 控制表达式(day)必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。

在一个 switch 中可以有任意数量的 case 语句。每个 case 后一个要比较的值和一个冒号。case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量表达式不允许是变量。

当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

任何switch语句都必须遵循以下规则:

  • 只能针对基本数据类型使用switch,这些类型包括int和string等。对于其他类型,则必须使用if语句。
  • case标签必须是常量表达式(constantExpression),如0或者"0"。如果需要在运行时计算case标签的值,必须使用if语句。
  • case标签必须是惟一性的表达式。也就是说,不允许两个case具有相同的值。
  • 最好为switch语句中的每个case(包括default case)都提供一个break语句。这个要求是一件好事情,防止造成执行自动贯穿到后续的标签,并造成很难发现的bug。但不是每一个 case 都必须要包含 break。如果 case语句为空(case 1:),则可以不包含 break,控制流将会继续后面的 case,直到遇到 break为止。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

switch语句语法的更多相关文章

  1. JS基础_条件分支语句:switch语句

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. switch 语句 总结笔记

    1.switch 语句 语法: switch(expression) { case value1 : statement1; break; case value2 : statement2; brea ...

  3. JavaScript学习系列博客_9_JavaScript中的if语句、switch语句

    条件判断语句 - 条件判断语句也称为if语句 - 语法一: if(条件表达式){ 语句... } - 执行流程: if语句执行时,会先对条件表达式进行求值判断, 如果值为true,则执行if后的语句 ...

  4. 8.switch语句

    switch语句语法 switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数 ...

  5. 选择结构——switch语句

    1.switch语句 语法格式: switch (表达式){ case 常量 1: 语句; break; case 常量 2: 语句; break; case 常量 3: 语句; break; --- ...

  6. Java语法基础(三)----选择结构的if语句、switch语句

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...

  7. 笔记二:JS的输出、语法、语句、字符串、条件语句、switch语句、for循环、while循环

    1.JS的输出: 注意:JS没有任何打印或者输出的函数 JS输出数据的集中方法:  1.使用window.alert()弹出警告框: 2.使用document.write()方法将内容写到HTML文档 ...

  8. switch语句下的变量声明和定义

    switch语句下的变量声明和定义的问题: switch...case...语句中存在声明和定义会出现一些问题.这个由switch语法特性决定的, switch中每个case都是平等的层次,区别于一般 ...

  9. PHP条件语句语法与示例

    一.if…else语句 语法: 1 if(条件){ …… } else{ …… } 2 if(条件){ …… } elseif(条件){ …… } else{ …… } 示例1: <?php & ...

随机推荐

  1. 2017春季阿里大文娱(优酷)——C++研发一面

    一.C++基础 1.1 sizeof 问题(空类.含虚函数.内存对齐) 1.2类构造的时候会默认生成哪些函数,C++11多了什么?(move,左\右值) 1.3为什么c++不类似java一样实现一个内 ...

  2. 在本机搭建mycat 单机环境,使用mariadb 伪集群

    首先搭建mairadb的集群 master 使用端口3306 slave 使用端口3406 master 相关配置 在my.ini 文件的[mysqld] 节点中添加或修改如下配置 #允许其他机器re ...

  3. 【Spring Boot&&Spring Cloud系列】使用Intellij构建Spring Boot和Mybatis项目

    一.创建项目 1.File->New->Project->spring initializer 2.勾选Web SQL Template Engines 3.项目生成之后,点击add ...

  4. HDFS的客户端操作

    命令行操作: -help      功能:输出这个命令参数手册 -ls                   功能:显示目录信息 示例: hadoop fs -ls hdfs://hadoop-serv ...

  5. JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore

    JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍: @BeforeClass:针对所有测试,只执行一次,且必须为static void ...

  6. fs-extra 文件管理

    一.fs-extra 文件管理 $npm install fs-extra --save 1.创建一个目录 fs.mkdir(path, [mode], [callback(err)]) path 将 ...

  7. DragonBones龙骨插槽的隐藏

    参考: 插槽中对象的显示与隐藏问题 let factory = dragonBones.EgretFactory.factory; factory.parseDragonBonesData(RES.g ...

  8. Centos 7.x临时的网络与路由配置

    今天在虚拟机上安装了Centos 7.1操作系统,使用的最小化安装,安装完成后准备使用ifconfig命令时,发现命令不存在,如下: 心想肯定是新版的Centos 系统默认情况下没有使用ifconfi ...

  9. Mac - Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    在终端输入mysql,结果出现 macdeMacBook-Pro:~ mac$ alias mysql=/usr/local/mysql/bin/mysql macdeMacBook-Pro:~ ma ...

  10. python的十进制与任意进制的转换

    将任意进制转换成十进制 ", 8)) # 表示把8进制的54转换成十进制数并输出结果. # 8可以是2.8,10,16等进制数 将十进制转换成任意进制 def f(n,x): #n为待转换的 ...