char ch='A' ; int r=6; switch( ch+5) { case 'A': r=r+3; case 'B': r=r+5; case 'C': r -= 6; break; default: r/=2; }r的值是多少
时间: 2023-05-25 10:02:23 浏览: 153
该程序会报错,因为语句 switch(ch 5) 中的 ch 5 无法被识别为一个值。正确的写法应该是 switch(ch) 并且提供相应的 case 分支来匹配 'A', 'B', 和 'C'。假设修正后的程序为:
```c++
char ch = 'A';
int r = 6;
switch (ch) {
case 'A':
r = r * 3;
case 'B':
r = r * 5;
case 'C':
r -= 6;
break;
default:
r /= 2;
}
```
经过执行后,r 的值会是 90。原因是在 switch 语句中,如果没有 break 语句来终止 case 分支,控制流会继续向下执行下一个 case 分支,直到遇到 break 或 switch 结束。所以,当 ch 的值为 'A' 时,分支 'A' 和分支 'B' 都会执行,使得 r 先乘以 3 再乘以 5,得到 90。
相关问题
int a = 0; char ch =’X’; switch(ch){ case ‘X’: c = 50; case ‘Y’: c = 60; case ‘Z’: c = 70; default: c = 100; }
这段代码定义了一个整型变量a和一个字符变量ch,并且使用了一个switch语句对ch进行判断。根据switch语句的逻辑,如果ch的值为'X',则将变量c赋值为50,并且接着执行下一个case语句;如果ch的值为'Y',则将变量c赋值为60,并且接着执行下一个case语句;如果ch的值为'Z',则将变量c赋值为70,并且接着执行下一个case语句;如果ch的值不是'X'、'Y'、'Z'中的任意一个,则将变量c赋值为100。在这个例子中,由于ch的值为'X',所以变量c的值将被赋值为50。但需要注意的是,由于没有在case语句的末尾使用break语句,所以在执行完case 'X'后,会继续执行下一个case语句,即case 'Y'和case 'Z',并将c的值修改为60和70。最终,变量c的值将为70。
public class Test { public static void main (String args[ ]) { int m = 0; char ch ='a'; switch(ch) { case 9 : case 'a' : m = m+1; case 'A' : m = m+1; break; case 66 : m = m+1; default: m = m+3; } System.out.println(m); //【代码】 } }
这段代码的输出结果为2。
在switch语句中,根据char类型的变量ch的值,会进入不同的case分支执行代码。
在这个例子中,ch的值是'a',因此会进入第一个case分支。由于case分支中没有break语句,会继续执行下一个case分支。因此m的值会先加1,然后再加1。最后,由于第二个case分支有break语句,会跳出switch语句,执行System.out.println(m)语句,输出2。