程序:
public class Job3
{
public static void main(String[] args)
  {
for(int i=0;i<=5;i++)
  {
switch(i)
  {
case 0:
  System.out.println("i is zero.");
//   break;
case 1:
  System.out.println("i is one.");
  break;
case 2:
  System.out.println("i is two.");
//   break;
case 3:
  System.out.println("i is three.");
  break;
case 4:
  System.out.println("i is four.");
  break;
default:
  System.out.println("i is five.");
  }
  }
  }
}
问题是:为什么去掉break后下面的一个case语句就被执行了2遍呢?
运行结果:
i is zero.
i is one.
i is one.
i is two.
i is three.
i is three.
i is four.
i is five.

解决方案 »

  1.   

    break的作用,就是跳出你的这个switch,然而却并未跳出你的外层for循环如果没有break,会继续往下走。可以跟着debug看看或者,去搜索关键字 ‘break’
      

  2.   

    在i=0时,打印了两条信息 case 0  和 case 1
    在i=2时,也打印了两条  case 2 和 case 3
      

  3.   

    switch中的break如果没有,会接着执行下一个case中的语句,无论其是否相等
    从switch的本意来说,一般每个case后面都应加上break(当然某些场合反而需要不加)
      

  4.   

    i=0 打印zero
    不break 继续 打印one
    break
    i=1 打印one
    break所以打印了两个one后面同理
      

  5.   

    使用switch的时候需要特别注意,case之后需要加break,否则遇到第一个相等之后,下面break前的语句都会去执行。
    如case 0:
    System.out.println("i is zero.");
    // break;
    case 1:
    System.out.println("i is one.");
    break;你第一次0的时候, i is zero  i is one打印
    当第二次1的时候,case 1 ,打印 i is one,,这个时候碰到break,自动跳出执行下一次循环