C++中switch语句中case分句后面只能跟字符量吗?

初学C++,卡到这里来了,书上的例子上case后面只跟字符量,switch语句具体都是怎么用的、求解?

case后面 只要是能表示成 整数结果的表达式 全都可以 。
单引号括起的 字符常量,例如: case 'a': case 'S': case '5': case '6': 都可以。因为字符常量 是整型,数值等于它们的 ASCII 值。
其他, case 3: case 4:
case TRUE:
只要是能表示成 整数结果的表达式 全都可以
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-25
switch(可为表达式或变量)

{
case 可为表达式或字符:表达式;

....

......

}
第2个回答  2013-11-06
case是关键字,与后面的值构成case标号。case标号必须是常量表达式,具体来说就是在编译时编译器就可以计算出结果的整型表达式。例如整型字面值或者是const对象。举个例子,‘a’,1,1.3,true可以转化为整型但是不能是变量,例如在switch语句之前有一个int型变量i,则case后不能跟i。
switch语句的一般结构梦易少年说的很清楚。我要补充的是关于break语句的用法,break语句用来中断当前的程序控制流,就是通常说的跳出语句。如果没有break语句,第一个匹配到的case值后面的语句都会执行。
还有就是default标号的用法,相当于if-else语句中的else语句,如果前面没有匹配到的标号值,就执行default标号后的语句。
最后就是关于switch内部变量定义的问题,建议使用语句块,防止发生变量定义前使用的情况。
如果题主有不懂,欢迎追问。如果题主想学好c++的话,建议看《c++ primer》,经典
第3个回答  2013-10-25
switch用法
swtich(表达式)
{
case 常量表达式1; 语句组1;
[break;]

case 常量表达式2; 语句组2;
[break;]
......
case 常量表达式n; 语句组n;
[break;]
default :语句组n+1;
}
case后面的不一定是字符量,也可以是常数等等。
例如:
int i;
cin>>i;(或scanf("%d",&i);)
swtich(i)
{
case 1:表达式1;
case 2:表达式2;break;
default :表达式3;
}

您好,很高兴为您解答 希望能够帮助您
如果本题有什么不明白欢迎追问
祝你学习进步!

C++中switch语句中case分句后面只能跟字符量吗?
case后面 只要是能表示成 整数结果的表达式 全都可以 。单引号括起的 字符常量,例如: case 'a': case 'S': case '5': case '6': 都可以。因为字符常量 是整型,数值等于它们的 ASCII 值。其他, case 3: case 4:case TRUE:只要是能表示成 整数结果的表达式 全都可以 ...

switch语句中case后面可以加字符串么
c\/c++ 语言 不允许。c\/c++ 语言 case后面 只允许是 整型 常量 表达式,例如:int k=3;switch(k){ case 'd'-'a': printf("d-a\\n");break;case 4 : printf("4\\n"); break;case 'Z' : printf("Z\\n"); break; \/\/单引号括起的是字符常量,是整型。} 上面 用的 都...

c语言switch语句中case后面必须要接整型常量和字符型常量吗
是的,case语句后面的必须是整型常量!整型常量有多种,比如int、char、enum枚举常量,在C++中bool类型也属于整型常量的一种。\/\/一般switch语句使用此种格式switch(表达式){case 常量表达式1:语句1;...case 常量表达式2:语句2;default:语句;}switch是一个整型表达式。case是一个整数常量表达式。只所以不...

C++中 switch 中 case的问题 是关于单引号和双引号的
case后面只能接常量表达式,一般是数字,单引号是字符可以直接转为整型,双引号是字符串,是不合法的。swith算比较常用的分支结构。

switch\/if等语句中不能定义变量吗? case后面只能跟整型吗?
switch 后只能跟只读的

switch后面可以加变量或者常量吗?
不可以,C语言中的switch case中的case后面仅可以跟整形常量或常量表达式。原因:如果case后面跟 100>x>50是会出现逻辑错误的。首先C语言中像100>x>50这种表达式的意义并不和数学里的一样表示x落在(50,100)这个区间。这个在C语言中100>x会先被计算得到真或假。直接用关系运算得到的真和假在C语言...

switch 中case的条件问题!
基本的C语言语法问题。switch()内的表达式必须有一个定值 case后面只能是表达式的一个定值,不能指定范围。如果想要实现以上 可以使用if(i>40 && i<46)语句。

switch case 语句问题 表达式可以使字符串吗
不行,可以是整形,包括bit,int,long。在C++里的话用字符也可以,比如case 'c',因为字符在内存里是用一个整数来表示的,也就是传说中的ASC码

C++的基础知识。switch 和case。case后面可以接字符串吗?请详细点讲解...
switch case 只支持整数和枚举类型 \/\/一种伪的实现方式 include <iostream> using namespace std; enum set {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}; void char2enum(char ch , set &em){ \/\/ 实现字符转枚举,其中参数em为set的引用类型,来把ch转换...

C++中switch语句出现case expression not constant
case后面修改为单引号,比如 case 'A'这样,而不是case "A"这样。因为单引号的时候表示常量,双引号的时候表示的是字符串,case只能识别整型常量。

相似回答