所以我正在尝试为我的单向链表类实现一个 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,否则,执行逻辑并返回结果。