楼主:
Wardyal (Wardyal)
2023-04-06 13:39:17#include <stdio.h>
int main() {
int num = 3;
switch (num) {
case 1:
printf("Case 1\n");
break;
if (num == 3){
num = 2;
}
case 2:
printf("Case 2\n");
break;
case 3:
printf("Case 3\n");
break;
default:
printf("Default case\n");
}
return 0;
}
我在Switch里面加上一个if statement
跑出来的结果还是Case 3
所以在Switch Case里面只会执行那几个Case?
还是我哪里写错了?
早上改一段测试Code发现的问题
(另外不加上if,直接num = 2来修改也没用)
你板有C语言大师吗
楼主:
Wardyal (Wardyal)
2023-04-06 13:44:00因为在测试一个不会进去的statement 想说直接在他前面改才发现好像不能改的?
作者:
koy784512 (我永远喜欢风真いろは)
2023-04-06 13:45:00没看过有人这样用的
你都break了还想要他干嘛他的流程就是case进去 break退出而已阿==
楼主:
Wardyal (Wardyal)
2023-04-06 13:48:00单纯想看第二个case的结果 又懒的改输入的变量 D;
那个if就是case 1底下的一个区段 但因为break所以永远不会抵达不要用缩排自己骗自己
楼主:
Wardyal (Wardyal)
2023-04-06 13:51:00可是我加在第一个case之前也是一样
作者:
TNPSCG (TNP)
2023-04-06 13:52:00先搞懂break的机制 跟你讲的东西完全无关
如果它会执行前面别的case 还要这switch干嘛?我猜你想做的事情是goto
楼主:
Wardyal (Wardyal)
2023-04-06 13:55:00狗妹 我懂了