我们都知道Java中switch语句为选择语句,很简单,但是 其中的一些小细节我们需要注意,例如当default语句放在前面的时候程序是怎样的运行顺序。
如下程序,switch语句的第一个选择语句就是default语句,这里的出现很多陷阱:
- default虽然为选择的第一个语句,但是它确实最后一个运行,当所有选择情况都不符合它才运行。
- 从程序我们可以看出case1,2,3都是没有break语句的,所以当程序遍历查看所有选择后都不符合后,当然会执行defaullt语句(这是无可厚非的),但是下面我们需要注意,由于default语句同样没有break语句,那么当程序运行到这里后程序不会停止,会按照顺序继续向下执行,直到遇到break语句。我们从程序的运行结果可以看出来。
public class SwitchTest {
public static void main(String[] args)
{
int a = 5;
switch(a)
{
default:
System.out.println("a没有对应的值");
case 1:
System.out.println("a的值为"+a);
//break;
case 2:
System.out.println("a的值为"+a);
//break;
case 3:
System.out.println("a的值为"+a);
//break;
case 4:
System.out.println("a的值为"+a);
break;
}
}
}
程序运行结果:
a没有对应的值
a的值为5
a的值为5
a的值为5
a的值为5
这里再追加一个小细节,java小白可以看一下
public class SwitchTest {
public static void main(String[] args)
{
int a = 5;
switch(a)
{
default:
System.out.println("a没有对应的值");
case 1:
case 6:
case 0:
System.out.println("a的值为"+a);
//break;
case 2:
System.out.println("a的值为"+a);
//break;
case 3:
System.out.println("a的值为"+a);
//break;
case 4:
System.out.println("a的值为"+a);
break;
}
}
}