gpt4 book ai didi

java - 在循环内返回 : wrong in Java?

转载 作者:行者123 更新时间:2023-12-01 06:29:17 25 4
gpt4 key购买 nike

在使用 Python 进行编码时,我经常通过在循环内插入 return 来中断函数/方法,例如,当达到某个条件并且我想返回该值时。我注意到,如果我在 Java 中执行此操作,IDE(在本例中为 Eclipse)似乎无法识别 return 命令。例如这里:

protected Node getTrueParent() {
for (Edge e : this.edges) {
if (e.getNode2() == this && (!e.isPseudo())) {
Node parent = e.getNode1();
return parent;
}
}
}

Eclipse 指出“此方法必须返回 Node 类型的结果”。我做的事情是错的吗?另外,parent 是在 for 循环内声明的,因此我无法将其返回到循环之外。一种方法是在开头(即在循环之外)声明 parent ,但这对我来说阅读起来会很草率。正确的写法是什么?

最佳答案

当您在循环中找不到结果时,您就错过了返回

protected Node getTrueParent() {
for (Edge e : this.edges) {
if (e.getNode2() == this && (!e.isPseudo())) {
Node parent = e.getNode1();
return parent;
}
}
return null; // ADD THIS
}

如果您绝对确定这种情况不应该发生,并且您认为此处不应该返回,请抛出异常:

protected Node getTrueParent() {
for (Edge e : this.edges) {
if (e.getNode2() == this && (!e.isPseudo())) {
Node parent = e.getNode1();
return parent;
}
}
throw new IllegalStateException("Somebody broke the data. Send Help!");
}

关于java - 在循环内返回 : wrong in Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42113653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com