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
}

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ā)生的情況。

TA貢獻1875條經(jīng)驗 獲得超5個贊
方法聲明MethodName1
錯誤。你錯過了論證部分。將其更改為public static void MethodName1()
.
添加回答
舉報