亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java - 無法訪問的語句幫助(鏈接列表)

java - 無法訪問的語句幫助(鏈接列表)

江戶川亂折騰 2023-10-13 16:22:20
因此,我嘗試為我的單鏈表類實現 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;}
查看完整描述

2 回答

?
慕尼黑8549860

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。


查看完整回答
反對 回復 2023-10-13
?
翻閱古今

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,否則,執行您的邏輯并返回結果。


查看完整回答
反對 回復 2023-10-13
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號