case后需要手动break

switch(i){
case 1:
语句1;
break;
case 2:
语句2;
break;
default:
语句3;
break;
}

上述代码表示

  • i == 1时执行语句1
  • i == 2时执行语句2
  • 其他情况执行语句3
switch(i){
case 1:
语句1;
case 2:
语句2;
default:
语句3;
break;
}

如果漏掉break

  • i == 1时执行语句1、2、3
  • i == 2时执行语句2、3
  • 其他情况时执行语句3

switch内的变量定义

变量没有定义在语句块内

  • 变量的作用域是整个switch语句

  • 内部定义的变量只能声明,不能初始化。

假设上述代码合法,则一旦控制流直接跳到false分支,也就同时略过了变量file_name和ival 的初始化过程。此时这两个变量位于作用域之内,跟在false之后的代码试图在尚未初始化的情况下使用它们,这显然是行不通的。因此C++语言规定,不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置。

变量定义在语句块内

  • 变量的作用域是case语句块内
  • 内部定义的变量可以初始化
case ture:
{
//正确:声明语句位于语句块内部
string file_name = get_file();
//..
}
break;
case false:
if ( file_name.empty()) //错误:file_name不在作用域内
break;

表述多情况时不能用逗号

switch(i){
case 1,2,3,4: //错误写法
cout<<"i = 1,2,3,4"<<endl;
break;
default :
cout<<"in default"<<endl;
break;
}

上述程序应该写为

switch(i){
case 1: //正确写法
case 2:
case 3:
case 4:
cout<<"i = 1,2,3,4"<<endl;
break;
default :
cout<<"in default"<<endl;
break;
}

也可写为

switch(i){
case 1: case 2: case 3: case 4: //正确写法
cout<<"i = 1,2,3,4"<<endl;
break;
default :
cout<<"in default"<<endl;
break;
}

使用switch语句的注意事项的更多相关文章

  1. java switch语句注意的事项

    1.switch语句使用的变量只能是byte.char.short.string数据类型. 2.case后面gender数据必须是一个常量. 3.switch的停止条件: switch语句一旦比配上了 ...

  2. Java switch语句使用注意事项

    1.多个case后面的值不可以重复 2.switch后面小括号的数据类型(case 后面的数值类型)只能是以下类型 基本数据类型: byte / short / char / int 引用数据类型:S ...

  3. Java学习:switch语句使用的注意事项

    switch语句使用的注意事项: 多个case后面的数值不可以重复. switch后面的小括当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字 ...

  4. java switch语句注意事项

    /* switch语句的使用注意事项: 1.多个case后面的数据不可以重复 2.switch后面的小括号当中只能是下列数据类型: 基本数据类型:byte . short.char.int 引用数据类 ...

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

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

  6. 选择结构if语句和switch语句的区别

    ------- android培训.java培训.期待与您交流! ---------- 1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if( ...

  7. switch语句以及三种循环语句的总结

    1:switch语句(1)格式:switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n+1;break;} 格式解释说明: ...

  8. [Day4]Switch语句、数组、二维数组

    1.选择结构switch (1)格式 switch (表达式){ case 目标值1: 执行语句1; break; case 目标值2: 执行语句2; break; ...... case 目标值n: ...

  9. if 结构和三目运算和switch语句

    if语句需要注意的地方: if判断只能接一个语句,存在多个语句时,用块语句表示{},若在if判断后 直接加“:”相当于if判断后加一个空语句,即使条件成立什么也不会干! 1. if的第一种形态(真假) ...

  10. 【JS】332- 为什么我更喜欢对象而不是 switch 语句

    昨天偷懒了,欢迎点击关注???这样我就多更大的动力日更了- 正文从这里开始~~~ 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理 ...

随机推荐

  1. C语言的指定初始化

    ----------------版权声明:本文为CSDN博主「Supan-Yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog ...

  2. 短视频SDK 视频编辑SDK AE模版SDK 人体抠图SDK 绿幕抠图SDK

    优势:  快速接入免费试用名称:  短视频SDK品牌:  蓝松SDK特色:  一站式视音频解决方案 杭州蓝松科技有限公司,多年来一直专注于音视频领域核心技术的研发.核心研发团队掌握的行业领先技术,目前 ...

  3. React的prop-types下载安装教程

    最近刚入门react,所有react的资源都是从本地导入的,这就难免要去网上找要用的包,react包和reactdom,还有babel的包都挺好找的,官网就有现成的可以用,但是prop-types包貌 ...

  4. 二. Spring Boot 中的 “依赖管理和自动配置” 详解透彻到底(附+详细代码流程)

    二. Spring Boot 中的 "依赖管理和自动配置" 详解透彻到底(附+详细代码流程) @ 目录 二. Spring Boot 中的 "依赖管理和自动配置" ...

  5. Kubernetes-13:存储卷Volume介绍及使用

    Volume介绍 Volume存在的意义 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失--容器以 ...

  6. Python 版本管理工具选择与 Pyenv 使用说明

    Python 版本管理工具的主要作用是帮助开发者在同一台机器上管理多个 Python 版本和环境.这对于开发和部署不同项目非常有用,因为不同项目可能依赖不同的 Python 版本或者不同的包版本. 具 ...

  7. 在 windows 上部署 django

    环境 Django 4.1.7 python 3.11.2 Apache 2.4.46 1:安装配置 Apache 1.1:下载 Apache Apache官方下载链接 按照系统版本选择对应的,以下是 ...

  8. SpringCloud入门(二)服务间调用和案例

    一.微服务拆分注意事项微服务拆分注意事项:1.单一职责:不同微服务,不要重复开发相同业务2.数据独立:不要访问其它微服务的数据库3.面向服务:将自己的业务暴露为接口,供其它微服务调用 1.微服务需要根 ...

  9. SpringBoot——简介&&入门

    SpringBoot 简介 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 起步依赖 starter:SpringBoot中常见的 ...

  10. MyBatis——案例——查询-查询所有

      查询-查询所有数据     1.创建相应Mapper接口文件 以及Mapper配置信息文件                修改配置文件中 namespace :             2.编写接 ...