gpt4 book ai didi

Java死代码,有人能解释一下吗?

转载 作者:行者123 更新时间:2023-12-01 23:18:41 25 4
gpt4 key购买 nike

这是二叉树类的一部分,这里是find函数,给定key来查找树中的节点,如果没有找到则返回null,但是这部分已经被识别为dead代码,当我将 if(current==null) 语句移动到 while 循环内部的底部时,它起作用了,为什么?是一样的吗?

public class Tree {
public Node root;

public Node find(int key) {
Node current = root;
while (current.key != key) {
if (current == null) { //dead code here, why?
return null;
}

if (key < current.key) {
current = current.leftChild;
} else if (key > current.key) {
current = current.rightChild;
}
}
return current;
}
}

public class Node {
public char label;
public boolean visited = false;
public int key;
public float data;

public Node leftChild;
public Node rightChild;

}

最佳答案

如果 currentnull 它永远不会进行 null 检查,因为您事先访问 current.key 它会抛出 空指针异常如果您在分配新值之前将 if(current==null) 移动到底部,那么它不会是死代码。 (因为 current.leftChild 和 current.rightChild 可能为 null)

关于Java死代码,有人能解释一下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852113/

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