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;
}
}