case后面 只要是能表示成 整数结果的表达式 全都可以 。
单引号括起的 字符常量,例如: case 'a': case 'S': case '5': case '6': 都可以。因为字符常量 是整型,数值等于它们的 ASCII 值。
其他, case 3: case 4:
case TRUE:
只要是能表示成 整数结果的表达式 全都可以
switch(可为表达式或变量)
{
case 可为表达式或字符:表达式;
....
......
}
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》,经典
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;
}
您好,很高兴为您解答 希望能够帮助您
如果本题有什么不明白欢迎追问
祝你学习进步!