假如程序进入if条件里,然后再switch里面没有找到对应的(虽然你的if条件能判断它一定会在中间,但是程序在编译时并不知道),所以编译时会以进入if条件但是在swith中没有找到对应的值,而没有return,此时不会进入else语句块,也就是说整个方法没有返回值,但是会编译报错咯。当你把else和大括号去掉,肯定可以啊,因为此时的return“错误”是作为这个方法的一个返回值的。
调试欢乐多
判断时,如果if(条件1){}else{},条件1判断后直接跳出if,else而不会去看else?直接去看语句后面?
不好意思那个地方打错,上面是string的,我只是想知道他是如何检查这个语句的返回值的
switch (weekNumber) {
case 1:
return "星期一";
//2-6略
case 7:
return "星期日";
default:
return "错误";
}
}
判断时,如果if(条件1){}else{},条件1判断后直接跳出if,else而不会去看else?直接去看语句后面?
我没有看懂你这句话的意思。当你没有运行时,java编译时,会检查你的语法等。它并不知道你的if条件里面能不能一定得到return,所以就会报编译错误。因为你的switch是完全有可能得不到返回值的。当你执行了if块,else块肯定就不执行了,此时就没有返回值啊