在switch语句中,case后的标号只能是什么?

switch语句用于基于不同条件执行不同动作。

语法格式:

switch (变量表达式)

{

case 常量1:

   语句;break;

case 常量2:

   语句;break;

case 常量3:

   语句;break;

...

case 常量n:

   语句;break;

default:

   语句;break;

}

switch语句是一个条件选择语句,找到相同的case值做为执行后面的程序入口;若所有的case都不满足,则找default入口;若未找到default入口则退出整个switch语句。

case 后的常量指的是常量表达式。在一个特定的 switch 语句中,每个 case 常量都必须具有独一无二的值,不可以重复。但是 switch 语句可以包含多个 case 标签。

default 标签是可选的,可以放在 switch 语句体内任何位置。如果没有 default 标签,并且没有任何 case 常量符合 switch 语句控制表达式的计算结果,那么 switch 语句体中的语句都不会执行。在这种情况下,程序流会转而执行 switch 语句体后面的语句。

switch 语句体通常是一个从 case 标签开始的语句块。如果在第一个 case 标签之前有语句,这些语句并不会被执行。

C 语言的标签只用于标识程序流可能跳转到的目的地。这些标签本身对程序没有影响。因此,从 switch 跳转到第一个符合条件的 case 标签之后,程序会继续顺序执行,不受其他标签的影响。

如果在这个符合条件的 case 标签之后,其他 case 标签中的语句应该被忽略,就应该在所执行的最后一条语句后,加上 break 语句,使得程序流直接跳转到 switch 语句体的后面。

如果需要在 switch 语句内声明变量,那么这些变量应该被声明在嵌套的内部语句块中,如下所示:

switch ( x )

{

   case C1: { int temp = 10;    // 声明temp,仅为该case使用

              /* ... */

            }

            break;

   case C2:

            /* ... */

}

在 switch 表达式中,应用了整数提升。case 常量被转换为匹配 switch 表达式计算结果的类型。

也可改用 else if 语句来实现 switch/case 语句效果。但是如果依据一个整数表达式的值来判断程序流,则应该使用 switch/case 语句,这种方式可以提高代码的可阅读性。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

4d07a3bf33a6d7d9c616dda7880bc7cf.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android+动画+锯齿,Android当中的防锯齿(Bitmap Canvas )

在Android中,目前,我知道有两种出现锯齿的情况。① 当我们用Canvas绘制位图的时候,如果对位图进行了选择,则位图会出现锯齿。② 在用View的RotateAnimation做动画时候,如果View当中包含有大量的图形,也会出…

osgi:install_OSGi服务测试助手:ServiceRegistrationRule

osgi:installOSGi服务测试可以是避免与悬挂的服务引用有关的问题的有效方法。 就像我在写简单服务贡献验证中所承诺的那样,这次我引入了一个JUnit规则 ,该规则有助于测试组件之间的交互。 OSGi服务测试组件交互 假设我们有一个服务,该服务通…

C语言——结构体链表,附完整示例

引用自身的结构体,一个结构体中有一个或多个成员的基类型就是本结构体类型时,说明这个结构体可以引用自己,所以称作引用自身的结构体。例如下面的结构体:struct link{ char ch; struct link *p} a;p是一个可以指向struct link类型…

android 注解点击事件,android click事件注解

定义注解:package com.fyfeng.android.annotations;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;Retention(value RetentionPolicy.RUNTIME…

jax-rs jax-ws_快速浏览JAX-RS请求与方法匹配

jax-rs jax-ws在本文中,我们来看一下JAX-RS中与资源方法匹配的HTTP请求 。 它是JAX-RS的最基本功能之一。 通常,使用JAX-RS API的开发人员不会接触(或真正不需要知道) 匹配过程的细节,请放心,由于我们的RES…

C语言知识总结——宏,枚举

1、define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并没有用define定义的…

C语言知识总结——共用体

union 共用体(联合体)在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中 以关键字union…

jboss入门_JBoss Forge NetBeans集成–入门

jboss入门JBoss Forge是构建基于Maven的Java EE项目的最快方法。 因此,它已经具有了令人敬畏的功能,使您作为开发人员的生活更加轻松。 在大多数情况下,使用Forge的人们可能会对创建Web应用程序感兴趣。 有很多方法可以开始使用Forge基础知识…

这几道 C/C 题涉及你的知识盲区?

8个C语言面试题,涉及指针、运算、函数、内存,看看你能做出几个!1.gets()函数问:请找出下面代码里的问题:#include int main(void) {char buff[10];memset(buff, 0, sizeof(buff));gets(buff); //gets不检查输入的字符…

logback redis_使用Spring Boot和Logback登录到Redis

logback redis在进行集中式日志记录时,例如使用Elasticsearch,Logstash和Kibana或Graylog2,您可以为Java应用程序提供多个选项。 您既可以编写标准的应用程序日志,也可以使用Logstash解析这些日志,这些日志既可以直接使…

荣耀6plus+android5.1,荣耀66Plus EMUI3.0开发版5.5.1版本发布说明

本帖最后由 秀姬 于 2015-6-8 11:22 编辑EMUI 3.0_Android4.4_5.5.1版本发布说明(开发版)适配机型:荣耀6 / 荣耀6 Plus 全系列机型下载地址:荣耀6标配版支持荣耀6手机全系列机型,不区分制式!标配版支持L0X的各机型升级&#xff0c…

C 与 C 的真正区别在哪里?

C 与 C 的真正区别在哪里?C是中餐厨师的菜刀,做啥菜就那一把刀,切菜切肉切鱼,都是这一把刀,刀工好的师傅,豆腐都能切成一朵花。无论你提什么概念,都能用指针给你做出来,如果不行&…

byteman_Byteman –用于字节码操纵的瑞士军刀

byteman我正在与JBoss中的许多社区一起工作,有很多有趣的事情要谈论,以至于我无法将自己的每一分都缠住。 这就是为什么我非常感谢有机会不时地欢迎客座博客的主要原因。 今天是Jochen Mader,他是以代码为中心的书呆子群的一部分。 他目前花费…

html 怎么置顶表格,表格(Table)表头固定,内容上滚【5个实例】

当表格往上滚动的时候,表头固定不动,这样可以让用户时刻看清每一列的数据含义,这是人性化的设计,充分考虑了用户使用体验。本文将通过5个实例,来介绍这种表格设计。用户可通过下载源码,直接应用于自己的项目…

C语言变量的定义包括变量存储类型和变量的什么?

C语言变量的定义包括变量存储类型和变量的名称。C语言定义变量的格式:“数据类型 变量名;”,“数据类型”表示想要存储什么类型的数据,“变量名”就是你想给这个变量起个什么名字,通常都是用字母。变量的定义定义变量的格式非常简…

java 调用祖父方法_在Java中调用祖父母方法:您不能

java 调用祖父方法在文章保护的重点中,我详细介绍了“受保护”如何扩展“包私有”访问。 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super调用parent方法。 通常,这实际上是您可以使用受保护的方法完成的所有操作。 &…

C语言代码注释必须用/**/ , 你没看错~

事情是这样的,有人离职,公司调我补缺。那个系统一直有个工程师在维护,参与该系统的新人来了又走,他始终泰然自若。刚过去一个礼拜,我就心下窃吼:“坑爹啊!”,也彻底体会到什么叫---绝对的权威、…

java8 streams_另一个Java 8 Lamdbas和Streams示例

java8 streams我一直落后于Java 8所关注的功能,因此在这篇文章中,我将简要介绍我对lambda和stream的初步经验。 和往常一样,我将专注于Podcast课程: package org.codingpedia.learning.java.core;import java.util.Comparator;p…

html文档的基本类型,HTML(网页的文档类型介绍)

一个html文件的第一行代码通常就是用于声明网页文档类型,其格式是:这一行不是属于标签文档类型:可以理解为不同的html版本!html4.0 或4.01版本基本固定,但又有分化:严格性:了用的标签和属性相对较少,但能兼容更多的浏览器。宽松型…

C语言源代码展示:常用转换函数实现原理

编程时经常用到进制转换、字符转换。比如软件界面输入的数字字符串,如何将字符串处理成数字呢?和大家分享一下。01字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen) {char h1,h2;char s1,s2;int i;for (i0; i …