switch语句中的case能否为0?

作者&投稿:闫旭 (若有异议请与网页底部的电邮联系)
~

不可以,C语言中的switch case中的case后面仅可以跟整形常量或常量表达式

原因:如果case后面跟 100>x>50是会出现逻辑错误的。

首先C语言中像100>x>50这种表达式的意义并不和数学里的一样表示x落在(50,100)这个区间。这个在C语言中100>x会先被计算得到真或假。直接用关系运算得到的真和假在C语言中就是1或0。而1或0是始终小于50的。这就导致这个表达式的值永远为零。

常量表达式:在计算机编程语言中,若一个表达式的值不能发生改变,则称之为常量表达式,如C++中有整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量,这些常量组成的表达式即为常数表达式。其中含有字符常量的常量表达式可称为字符常量表达式。

整型常量:整型常量就是通常的整数,包括正整数、负整数和0,其数据类型显然是整型。除此之外,整型常量包括短整型、长整型和无符号型等不同类型。

扩展资料

switch语句的用法和特点:

switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

Switch case 语句表达式为:

switch{case 常量1: 语句体1;case 常量2: 语句体2;case 常量3: 语句体3;case 常量4: 语句体4;....default : 语句体;}

当常量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句并跳出switch语句。

switch ...  case语句的特点:

1、把要讨论的表达式与case后面的常量进行比较,发现匹配项之后,从该位置入口,做它下面的所有语句。

2、case 后面的常量不能重复

3、可以在每一个case语句的后面加上break语句,这样就能保证只做与之相匹配的那一项。

4、break实质:在switch ...case语句里面最先遇到那一个break就从该位置结束该语句

5、可以在最后一个case的下面加上default语句表示如果找不到匹配项时,就做default对应的项。

6、default并不是一定要有,如果前面遇到break,default就不执行。如果没有遇到break,就一定会执行。

7、case后面的语句可以不执行,表示与下一个case是或的关系。

参考资料:百度百科-switch




你惊动了witch是啥梗
你惊动了witch是指游戏《求生之路》中在惊动感染者“witch”时显示的一句台词,一般用来表示惊动了一个比较强大的敌人。“你惊动了witch”里面的witch是游戏里的一个特殊感染者,她不像其他的感染者一样主动去攻击玩家,而是被动攻击玩家,只有玩家激怒她或者攻击她时,她才会进行反抗,攻击该玩家,被witch...

swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上...
,int以及枚举(enum),所以当表达式是byte的时候可以隐含转换为int类型,而long字节比int字节多,不能隐式转化为int类型,所以switch语句可以用在byte上而不可以用在long上,另外由于在JDK7.0中引入了新特性,所以witch语句可以接收一个String类型的值,String可以作用在switch语句上 ...

c语言switch语句中怎样在嵌套switch
就是在第一个switch的某个case语句或default语句中进行嵌套。例如:int a=4,i=0;switch(a){ case 1:{ printf("abc");break;}case 2:{ printf("abcd");break;} case 3:{ i++;switch(i) \/\/ switch语句中嵌套switch语句 { case 1: printf("fff");break;case 2: printf("111");b...

条件分支语句有哪些?
if条件分支语句,witch条件分支语句。1、if条件分支语句:这是最基本和最常用的条件分支语句,用于根据条件判断执行对应的代码块。2、witch条件分支语句:这个语句可以根据一个变量的值,从多个case中选择一个执行对应的代码块。

c语言 switch的用法
先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

求教c语言中switch 语句的详细用法
switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断,比如:i++;switch (i){ case 1 : P1 = 0xFE; \/\/i =1; 执行P1 = 0XFE;breK; \/\/执行完成后跳出 case 2 : P1 = 0xFD; \/\/i =2; 执行...

c语言switch语句
C语言程序语句switch:switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。switch语句的语法如下(switch,case和default是关键字):switch ( controllingExpression ){ case constantExpression1 :case constantExpression2 :case constantExpression3 :statem...

C语言中switch和if语句那个执行效率更高?
两个的用法都不一样,一般if是写一个条件,switch是列举一些值来判断,看你需要哪种类型的,这两个一般没有说谁效率高的,像楼上说的那种情况,只要是正常人都会选择用if来写啦。如果是像那个经典的例子判断分数段来显示优良中差的,相信也没几个会用if来写。

c语言程序设计实验报告内容
1、实验名称:计算出1000以内10个最大素数之和。2、实验目的:熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及...

输入1—7的整数,用witch case 语句转换成星期几,并输入这个星期几...
include <stdio.h> include <stdlib.h> int main(){ int num;scanf("%d", &num);switch (num){ case 1:printf("星期一\\n"); break;case 2:printf("星期二\\n"); break;case 3:printf("星期三\\n"); break;case 4:printf("星期四\\n"); break;case 5:printf("星期五\\n"); ...

五台县17660808570: c++中switch语句中case是否可以为负值? -
植枝盐酸: 完全可以,case只是对应switch后面括号里面的值,并没有其他的特殊含义,所以放心的用吧

五台县17660808570: SWITCH语句中的case后可以是字符串吗? -
植枝盐酸: 可以吧,不过你怎么用单引号括起来呢?果然不可以...case后面的表达式必须能转换成整数才行,就是说需要是字符和整数...

五台县17660808570: switch 中case的条件问题! -
植枝盐酸: 要这样,先用IF语句,把区间的值转换成一个个具体的点. 比如: int i; if(x<=40) i=1; if(x>40&&x<46) i=2; ...... switch(i) case .... ... 希望对你有帮助.

五台县17660808570: switch case语句中case有几种类型 -
植枝盐酸: 可以放整数表达式以及eume(枚举),而byte,short,char又隐含可以转换成int,所有可以放在case中,在java1.7以后也支持String

五台县17660808570: js中switch语句中case值可不可以表示一个范围 -
植枝盐酸: 用 switch(true) 可能能实现你的需求.switch( true ) { case x > 1 : break; case x == 1 : break; case x < 1 : break;} 或者,如果两个case执行相同的操作:switch( x ) { case 0 : case 1 : break; case 2 : break; default : break;}

五台县17660808570: C语言里面的switch语句:switch(a){case >20:printf("abc")};break;这样写可不可以? -
植枝盐酸: 不可以,case语句只能将可能的值逐一列出来,有多少可能就写多少个case,否则用条件语句替代switch语句即可.switch只能处理有限的情况,对于范围判断来说有其天生的局限性.可写成if ( a>10 ) printf("abc");

五台县17660808570: switch语句中的case表达式可以是任意类型的表达式. -
植枝盐酸: 肯定是错的,而且不同的语言支持的表达式类型还不同 有些语言只支持数字,连字符串都不支持.

五台县17660808570: C语言中的switch语句,case后面可不可以跟一表达式,例如“100>x>50”;如不可以为什么? -
植枝盐酸: switch语句非常有用,但在使用时必须谨慎.所写的任何switch语句都必须遵循以下规则: 只能针对基本数据类型使用switch,这些类型包括int、char等.对于其他类型,则必须使用if语句. case标签必须是常量表达式(constantExpression)...

五台县17660808570: switch语句中的case可不可以调用子函数? -
植枝盐酸: 写段事例代码还不然我通过,不知道想怎样,又要投书他们经理去了.switch...case语句是可以在里面调用其他函数的,比如:void a(){ int a = 3; switch(a) { case 1: break; case 2: break; case 3: b(); break; default: break; }}void b() { //do something}

五台县17660808570: switch语句中,以字符串作为case的条件可以吗 -
植枝盐酸: 只能针对基本数据类型使用switch,这些类型包括int、char等这个是使用switch的要求哦

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网