首页 今日更新正文

switch语句例子c语言打折(switch语句例子)

今日更新 2024-06-21 17:08:34
导读 switch(x) { default: if(prime(x)) { case 2: case 3: case 5: case 7:

switch(x) { default: if(prime(x)) { case 2: case 3: case 5: case 7: process_prime(x); } else { case 4: case 6: case 8: case 9: case 10: process_composite(x); } }   你能说出它如何执行吗?   switch语句的格式为: switch(条件)语句   其中,条件的类型可以是整数类型,枚举类型,或者类类型(但该类需要有单一的转换到整数类型或(可以是字符类型,但不能是浮点类型、字符串、指针类型等),语句部分不一定非得是一条复合语句。

因此,switch("123"[2]+(int)3.1);是条合法的switch语句,switch(j)case 5:i++;也是条合法的switch语句。

如果switch的语句部分是一条非复合语句,则其内定义的变量作用域,效果上等同于该条语句加上了{}。

如int i=3;switch(i)int i=4;,相当于int i=3;switch(i){int i=4;},因此这并不会导致同一局部域下的重复定义错误。

case标号后为一个整数类型的常量表达式,因此int i=3;switch(i){case 3:;}合法,而int i=3;switch(3){case i:;}不合法,因为case i:的i不是个静态表达式。

如果将int i=3;换成const int i=3;则后者在C++中就合法了,但在C中仍然不合法。

原因是C和C++对const的处理不同,在C中,const限定的量是不能直接去修改的,但它本身并不是常量表达式;在C++中,const限定的量,如果其值能在编译时确定,则其可出现在必须使用常量表达式之处。

  同一个switch的各个case标号的值不能够相互重复。

要注意的是,case标号在实现中是有上限的:C89标准要求至少257个,这保证了ASCII被switch列举一遍。

  虽然要求case标号是常量表达式,看起来似乎不是很零活方便(比如对比VB的Select Case),但是这样的设计可以保证更高的效率,而效率则是C和C++最为看重的因素。

因为case标号的值是编译时可确定的整数类型,又因为其不可有重复,因此编译器可以进行优化。

最后要强调的问题是,C++中goto不能从前往后跳过变量定义,因此switch内出现的变量定义语句,最好放在复合语句{}中包起来。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

头条推荐

森图里恩大学欢迎Shri Pavan Jindal Ji参与技能综合教育合作

森图里恩大学欢迎Shri Pavan Jindal Ji参与技能综合教育合作

FOSTIIMA商学院为企业专业人士开展管理发展计划2.0

FOSTIIMA商学院为企业专业人士开展管理发展计划2.0

Adda247在IBPS答案
中取得里程碑式进展全国范围内有6300名考生报名

Adda247在IBPS答案 中取得里程碑式进展全国范围内有6300名考生报名

莱姆布鲁克小学和幼儿园在马尔登开业

莱姆布鲁克小学和幼儿园在马尔登开业

KL Deemed to be University开始为新兴创新者提供B.Tech咨询服务

KL Deemed to be University开始为新兴创新者提供B.Tech咨询服务

全省第一!浙江海洋大学学子在中国研究生能源装备创新设计大赛中创佳绩

全省第一!浙江海洋大学学子在中国研究生能源装备创新设计大赛中创佳绩

昆明理工大学研究生在学术报告大赛中获佳绩

昆明理工大学研究生在学术报告大赛中获佳绩

百夫长大学被列入与外国大学开展学术合作的合格名单

百夫长大学被列入与外国大学开展学术合作的合格名单

戈印卡大学开创性的TLASH2024会议为将可持续发展目标融入高等教育铺平了道路

戈印卡大学开创性的TLASH2024会议为将可持续发展目标融入高等教育铺平了道路

26名艾伦课堂学生在2024年NEET-UG中获得排名第一

26名艾伦课堂学生在2024年NEET-UG中获得排名第一

图文推荐

斯特拉特设计学院培养具有全球影响力的班加罗尔未来领袖

斯特拉特设计学院培养具有全球影响力的班加罗尔未来领袖

KLH海得拉巴校区以成功就业证明助力学生成功

KLH海得拉巴校区以成功就业证明助力学生成功

商业学院拉克什亚分校开始招收预录取学生

商业学院拉克什亚分校开始招收预录取学生

奥米斯顿河学院学生获得GE成绩

奥米斯顿河学院学生获得GE成绩

教育科技公司Eupheus Learning赢得全球认可

教育科技公司Eupheus Learning赢得全球认可