2 回答

TA貢獻1818條經驗 獲得超11個贊
之后的線路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不成立,程序將跳過它并返回u.x。

TA貢獻1780條經驗 獲得超5個贊
嘗試這個:
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,否則,執行您的邏輯并返回結果。
添加回答
舉報