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

解决方案 »

  1.   

    无语
    因为第一个if永远是真,所以进入if内部,第二个if也永远是真,所以in 的值 "def"
    代码继续往下执行return in,return只会被执行一次,执行后立即退出函数,所以下面的return out; 是不会执行的,所以最后的结果就是"def"
      

  2.   

    没看到有个test8的类  估计lz手误   不知道lz啥意思  那个if的条件都是成立的 所以return in的时候 返回“def”啊  当然后面的那个return out是不会执行了
      

  3.   

    同意上面的,return 返回之后只返回一次
      

  4.   


    不是def又应该是什么呢?