日期:2014-05-20  浏览次数:20635 次

关于default的一个问题
public class DefaultTest {

private static int next(int i) {
switch(i) {
            // 这里加default的理由是什么?而且为什么必须加在这里才行。
default:
case 0: return 0; 
case 1: return 1; 
}
}

public static void main(String[] args) {
int[] arr = new int[2];
for(int i = 0; i < arr.length; i++) {
arr[i] = next(i);
}
for(int i : arr) {
System.out.println(i);
}
}

}

上述代码如果去掉default编译器会报‘缺少返回语句’的错误。不是很理解,希望有人能够解答,谢谢!
switch

------解决方案--------------------
估计java编译器对分支选择结构的检查机制就是这样,方法有返回值,就必须考虑到不满足条件的情况
即使这么写也不能通过
    public int f() {
     if(true) {
     return 1;
     }
    }