Javaでこの関数に問題があります。lastNodeAttributes==null
真の実行がいつジャンプするのか理解できませんreturn null;
が、その直後に、関数から戻るのではなく、return fight...;
最後に直接ジャンプします。最初の return が終了しないのに、実行が 2 番目の条件部分で return にジャンプするのはなぜですか?? これはどのように可能ですか?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());
}
}