问题描述
没有break是真,但num也不等于3和default啊?为什么?num=2,为什么还会走case 3和default?public class SwitchTest {public static void main(String[] args) {int num = 2;switch (num) {case 1:System.out.println("小白菜");case 2:System.out.println("大白菜");case 3:System.out.println("方便面");default:System.out.println("什么也不吃");}}}
解决方案
这个问题。。 其实很好对于java而言,switch语句有一个特性叫 fallthrough, 就如楼上所说说,条件成立switch开始执行,直到遇到break为。 期间不会再进行case的判断.但对于C#而言,则没有这样的特性这个特性,有时候是很好用的,但也很危险,看你怎么用 具体讨论可以看http://stackoverflow.com/questions/188461/switch-statement-fallthrough-should-it-be-allowed
解决方案二:
当num =2时,条件成立switch开始执行,知道遇到break为止,在这里你没有break,那么会运行到default后面。原理:1.找到起始执行点:start run point2.找到退出点:end point
时间: 2024-09-03 12:49:40