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++ 语言 不允许。\\x0d\\x0ac\/c++ 语言 case后面 只允许是 整型 常量 表达式,例如:\\x0d\\x0aint k=3;\\x0d\\x0aswitch(k){\\x0d\\x0acase 'd'-'a': printf("d-a\\n");break;\\x0d\\x0acase 4 : printf("4\\n"); break;\\x0d\\x0acase 'Z' : printf("Z\\n...

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

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++ siwtch语句的问题
开关语句:switch(整型表达式,允许用到变量名){ case 整型常量表达式: 语句;[default: ; 选项 ]} === A 不可用 浮点表达式 B switch((int)x); 多了分号 C 和 D 都对。case 2: 。。。 整型常量 , 对。case 2+1: 。。。整型常量表达式, 对。

请问c++的case可以后加一个string型的吗?
case 只能是常量或常量表达式,类型可为:各种整型,char,enum(枚举)其他都不行,所以字符串也不行.至于枚举类型你在网上专门搜索一下,太多了不想打了.

相似回答