package com.test.foreach;
public class switchTest {
// first default
public static void testFirst(int i) {
switch (i) {
default:
System.out.println("default");// first default
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
}
}
// last default
public static void testLast(int i) {
switch (i) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
default:
System.out.println("default");// last default
}
}
// middle default
public static void testMiddle(int i) {
switch (i) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default:
System.out.println("default");// middle default
case 3:
System.out.println("3");
}
}
public static void main(String[] args) {
System.out.println("||||||||||||||| first default ||||||||||||");
// first default
System.out.println("----------case到--------");
testFirst(2);
System.out.println("----------case不到--------");
testFirst(9);
System.out.println("||||||||||||||||||last default|||||||||||||||||");
// last default
System.out.println("----------case到--------");
testLast(2);
System.out.println("----------case不到--------");
testLast(9);
System.out.println("|||||||||||||||||middle default||||||||||||||||||");
// middle default
System.out.println("----------case到--------");
testMiddle(2);
System.out.println("----------case不到--------");
testMiddle(9);
}
}
运行结果:
||||||||||||||| first default ||||||||||||
----------case到--------
2
3
----------case不到--------
default
1
2
3
||||||||||||||||||last default|||||||||||||||||
----------case到--------
2
3
default
----------case不到--------
default
|||||||||||||||||middle default||||||||||||||||||
----------case到--------
2
default
3
----------case不到--------
default
3
看了结果,可以这样理解:
(1)switch语句关键地方是进入点,有了进入点没有break的情况下会执行到底
(2)没有匹配值的时候default就是进入点,进入default以后会和普通进入点一样,如果没有break继续执行下面语句
(3)如果有break 则是从进入点到 break中间的语句执行