Java中return的问题

hyp3353 2009-04-20 04:21:22
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
...全文
212 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
i_saw_you 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangqidong 的回复:]
无语。。。
因为第一个if永远是真,所以进入if内部,第二个if也永远是真,所以in 的值 "def"
代码继续往下执行return in,return只会被执行一次,执行后立即退出函数,所以下面的return out; 是不会执行的,所以最后的结果就是"def"
[/Quote]

不是def又应该是什么呢?
kingssman 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangqidong 的回复:]
无语。。。
因为第一个if永远是真,所以进入if内部,第二个if也永远是真,所以in 的值 "def"
代码继续往下执行return in,return只会被执行一次,执行后立即退出函数,所以下面的return out; 是不会执行的,所以最后的结果就是"def"
[/Quote]

无话可说了
gao512008 2009-04-20
  • 打赏
  • 举报
回复
看看
cwxlryf520 2009-04-20
  • 打赏
  • 举报
回复
排版不怎么好 看的头有点晕~~
endlessprogress 2009-04-20
  • 打赏
  • 举报
回复
同意上面的,return 返回之后只返回一次
深藏Blue_dct 2009-04-20
  • 打赏
  • 举报
回复
真是无语了..........................
hp5212000 2009-04-20
  • 打赏
  • 举报
回复
没看到有个test8的类 估计lz手误

不知道lz啥意思 那个if的条件都是成立的 所以return in的时候 返回“def”啊 当然后面的那个return out是不会执行了
yangqidong 2009-04-20
  • 打赏
  • 举报
回复
无语。。。
因为第一个if永远是真,所以进入if内部,第二个if也永远是真,所以in 的值 "def"
代码继续往下执行return in,return只会被执行一次,执行后立即退出函数,所以下面的return out; 是不会执行的,所以最后的结果就是"def"

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧