无法访问的语句帮助(链表)



所以我正在尝试为我的单向链表类实现一个 get 方法,但出现错误:无法访问的语句。我想知道如何解决这个问题?

public T get(int i) {
// TODO: Implement this
Node u = head;
for(int j = 0; j < i; j++){
u = u.next;
}
return u.x; 
if (i < 0 || i > n - 1) throw new IndexOutOfBoundsException();
return null;
}

return u.x后面的行无法访问。返回值或引发异常后,程序将退出该方法。

当然,您仍然可以使用if语句控制发生的情况:

public T get(int i) {
if (i < 0 || i > n - 1)
throw new IndexOutOfBoundsException();
// TODO: Implement this
Node u = head;
for (int j = 0; j < i; j++)
u = u.next;
return u.x;
}

如果if语句的条件不为 true,程序将跳过它并返回u.x

有关从方法返回值的详细信息,请参阅本教程。

试试这个:

public T get(int i){
if (i < 0 || i > n - 1) {
throw new IndexOutOfBoundsException();
} else {
Node u = head;
for(int j = 0; j < i; j++){
u = u.next;
}
return u.x; 
}
}

基本上,我们所做的只是将方法的主要逻辑移动到验证逻辑中。如果i超出范围,则引发异常并返回 null,否则,执行逻辑并返回结果。

最新更新