题目
读程序,输出运行结果public static void main(String[] args) {for(int i=1; i<=4; i++) {switch(i) {case 1:System.out.print("您");case 2:System.out.print("好");break;case 3:System.out.print("酷");default:System.out.print("!");}}}
读程序,输出运行结果
public static void main(String[] args) {
for(int i=1; i<=4; i++) {
switch(i) {
case 1:
System.out.print("您");
case 2:
System.out.print("好");
break;
case 3:
System.out.print("酷");
default:
System.out.print("!");
}
}
}
题目解答
答案
程序通过for循环遍历i = 1到i = 4,每次根据i的值执行对应的switch分支。需要注意,case后未加break会导致“贯穿”现象。
-
当
i = 1时:- 执行
case 1,输出“您”。 - 未遇
break,继续执行case 2,输出“好”。 - 遇到
break,跳出switch。 - 结果:
您好。
- 执行
-
当
i = 2时:- 执行
case 2,输出“好”。 - 遇到
break,跳出switch。 - 结果:
好。
- 执行
-
当
i = 3时:- 执行
case 3,输出“酷”。 - 未遇
break,继续执行default,输出“!”。 - 结果:
酷!。
- 执行
-
当
i = 4时:- 无匹配
case,执行default,输出“!”。 - 结果:
!。
- 无匹配
将所有结果拼接:您好 + 好 + 酷! + ! = 您好好酷!!。
最终输出结果为:
您好好酷!!解析
本题考查 Java 中 for 循环和 switch 语句的使用。解题思路是按照 for 循环的执行顺序,依次分析每次循环中 i 的值,根据 i 的值执行 switch 语句中的对应分支,同时要注意 case 后未加 break 会导致“贯穿”现象,即继续执行下一个 case 分支。
- 当
i = 1时:- 进入
switch语句,匹配到case 1,执行System.out.print("您");,输出“您”。 - 由于
case 1后没有break语句,程序会继续执行下一个case,即case 2,执行System.out.print("好");,输出“好”。 - 遇到
case 2后的break语句,跳出switch语句。此时输出结果为“您好”。
- 进入
- 当
i = 2时:- 进入
switch语句,匹配到case 2,执行System.out.print("好");,输出“好”。 - 遇到
case 2后的break语句,跳出switch语句。此时输出结果为“好”。
- 进入
- 当
i = 3时:- 进入
switch语句,匹配到case 3,执行System.out.print("酷");,输出“酷”。 - 由于
case 3后没有break语句,程序会继续执行default分支,执行System.out.print("!");,输出“!”。 - 此时输出结果为“酷!”。
- 进入
- 当
i = 4时:- 进入
switch语句,没有匹配的case分支,执行default分支,执行System.out.print("!");,输出“!”。 - 此时输出结果为“!”。
- 进入
- 将每次循环的输出结果拼接起来,得到最终输出结果为“您好好酷!!”。