public class Test {
public String t5() {
String out = "abc";
if(true) {
String in = "";
if(true) {
in = "def";
}
return in;
}
return out;
} public static void main(String[] args) {
System.out.println(new Test8().t5());
}为什么打印结果是:def
public String t5() {
String out = "abc";
if(true) {
String in = "";
if(true) {
in = "def";
}
return in;
}
return out;
} public static void main(String[] args) {
System.out.println(new Test8().t5());
}为什么打印结果是:def
因为第一个if永远是真,所以进入if内部,第二个if也永远是真,所以in 的值 "def"
代码继续往下执行return in,return只会被执行一次,执行后立即退出函数,所以下面的return out; 是不会执行的,所以最后的结果就是"def"
不是def又应该是什么呢?