程序段:int j=12,i=6,n=19; switch(j-i){ case 5: n=n-i; break; case 6: n=n+9; case 7: n=n-i; break; default:n=n*2; }为什么n等于22?
时间: 2024-04-14 11:31:35 浏览: 19
根据给定的程序段,我们可以逐步分析它的执行过程:
1. 首先,计算 `j-i` 的值,即 `12-6`,得到结果 `6`。
2. 根据 `switch` 语句的逻辑,程序会匹配 `case` 分支中与结果相等的语句。
- 但是,在这个程序段中,第一个 `case` 分支是 `5`,而计算出的结果是 `6`,所以不会匹配到第一个 `case` 分支。
- 紧接着是第二个 `case` 分支,其值为 `6`,与计算结果相等。
3. 当程序匹配到第二个 `case` 分支时,会执行该分支下的语句 `n=n+9;`。此时,`n` 的值会增加 `9`,变为 `28`。
4. 因为第二个 `case` 分支没有 `break` 语句,所以程序会继续执行下一个分支。
5. 下一个分支是第三个 `case` 分支,其值为 `7`。程序会执行该分支下的语句 `n=n-i;`。此时,`n` 的值会减去 `i` 的值,即 `28-6=22`。
6. 最后,由于没有匹配到任何一个分支,程序会执行 `default` 分支下的语句 `n=n*2;`。此时,`n` 的值会乘以 `2`,即 `22*2=44`。
7. 综上所述,根据给定的程序段,最后 `n` 的值应该是 `22`。
所以,根据程序的逻辑执行顺序,最终 `n` 的值等于 `22`。
相关问题
package com.exam; public class java { int i=0,j=-1; switch(i){ case 0:j=1; case 2:j=2; } System.out.print(""j=""+j); }
这段代码有语法错误,无法通过编译。在Java中,switch语句必须放在方法里面,不能直接在类中编写。正确的写法应该是:
```
package com.exam;
public class Java {
public static void main(String[] args) {
int i=0,j=-1;
switch(i){
case 0:j=1;break;
case 2:j=2;break;
}
System.out.print("j="+j);
}
}
```
在switch语句中,每个case后面必须跟着一个break语句,否则程序会继续执行下去。此外,Java中的类名应该以大写字母开头,变量名应该以小写字母开头。
int b(7); for(int i=9;i>=0;i--) { switch(i) { case 1: case 4: case 7: b++;break; case 2: case 5: case 8: break; case 3: case 6: case 9: b+=2; } } cout<<b<<endl;
这段代码的输出结果是:
```
10
```
下面是代码的详细解释:
1. 定义一个整型变量 b,初始值为 7。
```cpp
int b(7);
```
2. 使用 for 循环遍历整型变量 i,初始值为 9,每次循环将 i 减 1,直到循环结束。
```cpp
for(int i=9;i>=0;i--) {
// ...
}
```
3. 在 switch 语句中根据不同的 i 值进行不同的操作。当 i 的值为 1、4 或 7 时,将变量 b 的值增加 1;当 i 的值为 2、5 或 8 时,不进行任何操作;当 i 的值为 3、6 或 9 时,将变量 b 的值增加 2。
```cpp
switch(i) {
case 1: case 4: case 7: b++; break;
case 2: case 5: case 8: break;
case 3: case 6: case 9: b += 2;
}
```
4. 输出变量 b 的值。
```cpp
cout << b << endl;
```
由于循环从 9 开始,因此执行了 10 次循环。在这 10 次循环中,每当 i 的值为 1、4 或 7 时,变量 b 的值增加 1,因此增加了 3;在 i 的值为 3、6 或 9 时,变量 b 的值增加 2,因此增加了 6。最终变量 b 的值为 7 + 3 + 6 = 10,因此程序将输出以下内容:
```
10
```
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)