70,040
社区成员
发帖
与我相关
我的任务
分享
就是测试不加break执行看会不会往回执行,但是我纠结的是2+=2之后,k=4,此时为什么不执行case 4[/quote]但是为啥程序执行时,没有输出case 4 呢? k是3,所以switch跳到case 3执行,因为case 3没有break,因此顺序执行case 4,直到break或执行完。
[quote=引用 1 楼 柒贰伍玖 的回复:] case 后面要加 break 跳出 case,要不然它会从进入的 case 开始 往后执行,直到碰到break,才结束switch 语句 你的程序 在printf 完之后,加上 break,像你的case 4 一样,每一case都一样,这样就会只执行某一个case
就是测试不加break执行看会不会往回执行,但是我纠结的是2+=2之后,k=4,此时为什么不执行case 4[/quote]
进switch 的时候才做判断,后面不再判断了,进到case之后就顺序往后执行,碰到break或者到switch末尾处就结束。这个是switch语句,不会循环执行。但是为啥程序执行时,没有输出case 4 呢? k是3,所以switch跳到case 3执行,因为case 3没有break,因此顺序执行case 4,直到break或执行完。
k是3,所以switch跳到case 3执行,因为case 3没有break,因此顺序执行case 4,直到break或执行完。
case 后面要加 break 跳出 case,要不然它会从进入的 case 开始 往后执行,直到碰到break,才结束switch 语句
你的程序 在printf 完之后,加上 break,像你的case 4 一样,每一case都一样,这样就会只执行某一个case
就是测试不加break执行看会不会往回执行,但是我纠结的是2+=2之后,k=4,此时为什么不执行case 4