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

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

兩種結果的返回語句都缺少返回語句錯誤

兩種結果的返回語句都缺少返回語句錯誤

慕萊塢森 2022-01-12 16:53:03
 public double getWeight(boolean isMetric) {    // your code here    if(isMetric = true) {    return kg;    } else if(isMetric = false)         return lb;      }我知道對于每個可能的結果我都需要一個 return 語句,但是因為這是一個布爾參數,這是否意味著我只需要兩個 return 語句?我嘗試在最后一行添加“return null”,但這只會導致“非法類型開始”錯誤。   public User(String firstName, String lastName, double weight, double height) {      first = firstName;    last = lastName;    kg = weight;    cm = height;    }    public User(String firstName, String lastName, double weight, double height, boolean isMetric) {    // your code here    first = firstName;    last = lastName;    lb = weight;    in = height;    isMetric = false;}這些是與所討論的方法相關的構造函數。
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

首先使用 == 而不是 = 內部條件:


if(isMetric == true) {

}

現在,由于 if / else if 條件評估為布爾值,您可以將代碼簡化為:


if(isMetric) {

 ...

}

此外,實際上所有方法分支都應該返回一個值(并且 java 沒有“優化”來檢查是否else if包含布爾表達式的條件。


相反,您可以使用以下語義等效的構造:


public double getWeight(boolean isMetric) {

   // your code here

    if(isMetric) {

      return kg;

    } else {

      return lb;  

    }    

 }


查看完整回答
反對 回復 2022-01-12
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

這里:

if(isMetric = true) {

這是一個分配,而不是一個條件(= 與 ==)。

因此,您的“檢查”歸結為:

if (true) { ... return

因此,關閉 } 之后的任何內容都是死代碼。

換句話說:編譯器認識到您的代碼將允許返回 kg,因此永遠不會執行 else-if,因此編譯器會告訴您似乎有問題。


查看完整回答
反對 回復 2022-01-12
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

我會簡化你必須是以下內容:


public double getWeight(boolean isMetric) {

    if (isMetric) {

        return kg;

    }

    return lb;      

}

您的 getWeight 方法存在幾個主要問題。if(isMetric = true)將 isMetric 分配給 true 而不是將其與 true 進行比較(=用于分配,==用于檢查相等性)。它抱怨缺少回報,因為您的最后一條語句處于不必要的條件(else if(isMetric = false))中,其中隱含else沒有回報。


查看完整回答
反對 回復 2022-01-12
  • 3 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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