首页 今日更新正文

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内出现的变量定义语句,最好放在复合语句{}中包起来。

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

头条推荐

土地使用税滞纳金怎么算的(土地使用税滞纳金怎么算)

土地使用税滞纳金怎么算的(土地使用税滞纳金怎么算)

切割机规格型号功率(切割机规格型号)

切割机规格型号功率(切割机规格型号)

保险中介监管信息系统打不开(保险中介监管信息系统)

保险中介监管信息系统打不开(保险中介监管信息系统)

八仙过海各显神通的传说(八仙过海各显神通的故事)

八仙过海各显神通的传说(八仙过海各显神通的故事)

偕同是什么意思(偕同)

偕同是什么意思(偕同)

粘纤面料的优缺点是什么(粘纤面料的优缺点)

粘纤面料的优缺点是什么(粘纤面料的优缺点)

一只雀飞上桌捏尾巴跳下河打一日常用品(一只雀飞上桌捏尾巴跳下河)

一只雀飞上桌捏尾巴跳下河打一日常用品(一只雀飞上桌捏尾巴跳下河)

自贡市城投集团曾嵘(曾嵘)

自贡市城投集团曾嵘(曾嵘)

鲜衣怒马少年时一日看尽长安花全诗(一日看尽长安花全诗)

鲜衣怒马少年时一日看尽长安花全诗(一日看尽长安花全诗)

春风不解风情吹动少年的心的歌曲(春风不解风情吹动少年的心)

春风不解风情吹动少年的心的歌曲(春风不解风情吹动少年的心)

图文推荐

切割片规格型号及图片(切割片规格型号)

切割片规格型号及图片(切割片规格型号)

语文写作手法和表现手法是什么(表现手法是什么)

语文写作手法和表现手法是什么(表现手法是什么)

cad2016算面积快捷键(cad算面积的快捷键)

cad2016算面积快捷键(cad算面积的快捷键)

笃学尚行 止于至善(笃学尚行止于至善)

笃学尚行 止于至善(笃学尚行止于至善)

纸箱平方计算方法(纸箱平方计算公式)

纸箱平方计算方法(纸箱平方计算公式)