switch(n)的意思是根据n的值给出分支选择,n是依据,不是入口。你的m和n都是定义在main函数中,同样在main函数的switch语句必然能调用到m
不是你理解的n为入口,n是case后面的值,你这个程序意思是n=1,那就执行m++,n=2,那就执行n++,switch里面可以访问前面的定义的变量。
你这里case 1和case 2没有break,所以会继续执行,执行case 1之后,执行case 2后执行case 3,接着因为case 3也没有break,case3是在switch里面有break,所以会继续case4。
第一步 n=1, 执行case 1后,此时m=3 n=1
第二步 执行case2后 ,此时m=3 n=2
第三步 执行case3 ,此时n=2,所以执行case 3中的case 2,执行完后m=4 n=3
第四步 执行case4,执行完后m=5 n=3
所以最后是 m=5 n=3
c++中的swith有break吗,是不是没有break啊
因为每个 case 后面都没有break; ,所以从 n = 1开始按顺序往下执行每个 case 。
【以下回答由 GPT 生成】
问题的关键在于如何在switch语句的case中判断变量m的取值。在C语言中,switch语句是通过比较变量的值与case中的值是否相等来进行条件判断的。所以,我们需要在case中逐一判断变量m的取值。
下面是一个示例代码,展示了如何使用switch语句判断变量m的取值:
int n = 1;
int m = 2;
switch (n) {
case 1:
switch (m) {
case 1:
// m的取值为1时执行的代码
break;
case 2:
// m的取值为2时执行的代码
break;
case 3:
// m的取值为3时执行的代码
break;
default:
// m的取值不是1、2或者3时执行的代码
break;
}
break;
case 2:
// n的取值为2时执行的代码
break;
case 3:
// n的取值为3时执行的代码
break;
default:
// n的取值不是1、2或者3时执行的代码
break;
}
在上述代码中,首先通过switch语句判断变量n的取值,然后在每一个case语句中再次通过switch语句判断变量m的取值。根据需要,你可以在每个case中编写相应的代码来处理不同的m取值情况。
需要注意的是,每个case后需要加上break语句,以避免出现"穿透"现象。另外,代码中的default语句是可选的,用于处理n的取值不是1、2或者3时的情况。
希望以上内容对你有所帮助,如果有任何疑问,请随时追问。
【相关推荐】