java - 不可达语句帮助(链表)
java - unreachable statement help (linked lists)
所以我正在尝试为我的单向链表实现一个 get 方法 class,但我得到了错误:无法访问的语句。我想知道如何解决这个问题?
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;
}
试试这个:
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
越界,则抛出异常并 return null,否则,执行您的逻辑并 return 结果。
return u.x
之后的行无法访问。一旦值被 returned 或抛出异常,程序就会退出该方法。
当然,您仍然可以使用 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
语句的条件不为真,程序将跳过它并 return u.x
代替。
有关 return 从方法获取值的更多信息,请参阅 this tutorial。
所以我正在尝试为我的单向链表实现一个 get 方法 class,但我得到了错误:无法访问的语句。我想知道如何解决这个问题?
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;
}
试试这个:
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
越界,则抛出异常并 return null,否则,执行您的逻辑并 return 结果。
return u.x
之后的行无法访问。一旦值被 returned 或抛出异常,程序就会退出该方法。
当然,您仍然可以使用 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
语句的条件不为真,程序将跳过它并 return u.x
代替。
有关 return 从方法获取值的更多信息,请参阅 this tutorial。