程序:
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.
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.
在i=2时,也打印了两条 case 2 和 case 3
从switch的本意来说,一般每个case后面都应加上break(当然某些场合反而需要不加)
不break 继续 打印one
break
i=1 打印one
break所以打印了两个one后面同理
如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,自动跳出执行下一次循环