第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

初始化局部/類變量時出現(xiàn)問題

初始化局部/類變量時出現(xiàn)問題

尚方寶劍之說 2023-12-13 16:48:53
public class ClassName {   public static void main(String[] args) {   //code: depending on user input runs Methodname1();   }      public static void MethodName1 {        double kgs;        double totalIn;        //code: do/while try/catch etc.        double ImpToMetBmi;        double InchToMtrH;        InchToMtrH = totalIn*2.54/100;        ImpToMetBmi = (kgs/(InchToMtrH*InchToMtrH);        System.out.printf("\nYour BMI is: %.3f\n" ,ImpToMetBmi);      }}對于又長又糟糕的代碼感到非常抱歉。我認為必須查看所有代碼/布局才能找出問題。我收到的錯誤: 異常...無法編譯的源代碼 - 變量totalIn 可能尚未初始化 異常...無法編譯的源代碼 - 變量 kgs 可能尚未初始化在我插入 do/while try/catch 語句進行異常處理之前,這個公式就起作用了。我花了幾個小時閱讀有關(guān)聲明和初始化變量、局部變量和類變量的內(nèi)容。我嘗試了幾種不同的方法,但沒有任何方法可以解決問題。我對造成這種情況的原因以及如何解決它感到困惑。我想弄清楚這個問題并了解解決方案。在哪里初始化“totalIn”和“kgs”?以及我應(yīng)該將它們初始化為什么?如果有任何區(qū)別,這些變量將由用戶通過 Scanner 輸入的值填充。請幫忙!
查看完整描述

3 回答

?
白衣染霜花

TA貢獻1796條經(jīng)驗 獲得超10個贊

這是一個示例,解釋了您遇到的原因以及為什么您會遇到這種情況 -


double test;

if( isTrue){

    test = 2.0d;`enter code here`

// This will give you a error stating that test might have not initialized

double calculate = test * 5.0;

原因很清楚,如果 if 塊中的條件為 true,則測試值將使用 2.0 進行初始化,否則它將未初始化。


對此的快速修復(fù)可能是將測試初始化為某個值(可能是 0)。


說到這里,要初始化這些變量,您可以執(zhí)行以下操作 -


static double kgs;

static double totalIn;

public static void main(String args[]){

  Scanner sc = new Scanner(System.in);

  kgs= sc.nextDouble;

  totalIn = sc.nextDouble();

}


或?qū)⑺鼈冏鳛榉椒▍?shù)傳遞,如下所示 -


public static void main(String args[]){

  Scanner sc = new Scanner(System.in);

  double kgs = sc.nextDouble;

  double totalIn = sc.nextDouble();

}


public void yourMethod(double kgs, double totalIn){

  // do whatever you want with above passed variables


}


查看完整回答
反對 回復(fù) 2023-12-13
?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

public class ClassName {


   public static void main(String[] args) {

   //code: depending on user input runs Methodname1();

   }


      public static void MethodName1(double KGS, double TOTAL) {


        double kgs = KGS;

        double totalIn = TOTAL;


        //code: do/while try/catch etc.



        double ImperialToMetricBmi;

        double InchesToMtrHeight;


        InchesToMtrHeight = totalIn*2.54/100;


        ImperialToMetricBmi = (kgs/(InchesToMtrHeight*InchesToMtrHeight));


        System.out.printf("\nYour BMI is: %.3f\n" ,ImperialToMetricBmi);

      }

}

您基本上可以在聲明它們的地方初始化 kgs 和totalIn,但如果該方法將這些值作為參數(shù),那就更好了(到目前為止,這兩個值都不會被初始化)。另外,您還需要使用這兩個參數(shù)調(diào)用靜態(tài)方法,例如

double value1 = 123.1;

double value2 =  24

MethodName1(value1, value2)

進一步閱讀這個問題,我意識到您可能正在嘗試初始化條件語句或循環(huán)內(nèi)的值。簡單地理解當運行語句的條件不滿足時會發(fā)生什么?答案是該值永遠不會被初始化,這就是這里發(fā)生的情況。



查看完整回答
反對 回復(fù) 2023-12-13
?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

方法聲明MethodName1錯誤。你錯過了論證部分。將其更改為public static void MethodName1().



查看完整回答
反對 回復(fù) 2023-12-13
  • 3 回答
  • 0 關(guān)注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號