m='0';
                  switch(m){
case '0':
System.out.println(0);
case '1':
System.out.println(1);
case '2':
System.out.println(2);
default:
System.out.println("Default");
}
没有break;每条都执行么?
我测试后0,1,2,default都输出了?怎么回事

解决方案 »

  1.   

    swith的意思就是找到入口,然后往下执行,
    你输入了'0',在第一位,当然就全部输出了,
    break的意思是跳出,也就是提供了出口,否则他就一直挨个执行到末尾
      

  2.   

    switch语句的执行过程如下:表达式的值与每个case语句中的常量作比较。如果发现了一个与之相匹配的,则执行该case语句后的代码。如果没有一个case常量与表达式的值相匹配,则执行default 语句。当然,default 语句是可选的。如果没有相匹配的case 语句,也没有default 语句,则什么也不执行。 在switch语句中,break是可选的..在case语句序列中的break 语句将引起程序流从整个switch 语句退出。当遇到一个break 语句时,程序将从整个switch 语句后的第一行代码开始继续执行。
      

  3.   

    有什么不同?
    如果发现了一个与之相匹配的,则执行该case语句后的代码: 输入0 执行0后的代码,由于没有break,接着执行,于是输出了 0,1,2,Default
      

  4.   

    只有break能终止整个switch,没有break程序就一直执行下去到结束
      

  5.   

    如果符合条件进入switch没有break程序会一直执行,直到结束。