我在 Java 中遇到了这个函数的问题。我不明白为什么lastNodeAttributes==null
真正的执行何时会跳转到return null;
应有的位置,但是在那之后,它不是从函数返回,而是直接跳转到return fight...;
最后。为什么第一个返回不退出但执行跳转到第二个条件部分返回?这怎么可能?请解释原因显然我不明白java的基础知识是如何工作的。
public Node undo() {
Node lastNode=fight.getLastChild();
NamedNodeMap lastNodeAttributes = lastNode.getAttributes();
if(lastNodeAttributes == null) { return null; }
else {
String lastNodeFighter = lastNodeAttributes.getNamedItem("fighter")
.getNodeValue();
String lastNodePoints = lastNodeAttributes.getNamedItem("points")
.getNodeValue();
if(Integer.parseInt(lastNodeFighter) == 1) {
fighter1score-=Integer.parseInt(lastNodePoints);
}
else { fighter2score -= Integer.parseInt(lastNodePoints); }
return fight.removeChild(fight.getLastChild());
}
}