3 回答
TA贡献1796条经验 获得超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 进行初始化,否则它将未初始化。
对此的快速修复可能是将测试初始化为某个值(可能是 0)。
说到这里,要初始化这些变量,您可以执行以下操作 -
static double kgs;
static double totalIn;
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
kgs= sc.nextDouble;
totalIn = sc.nextDouble();
}
或将它们作为方法参数传递,如下所示 -
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条经验 获得超3个赞
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,但如果该方法将这些值作为参数,那就更好了(到目前为止,这两个值都不会被初始化)。另外,您还需要使用这两个参数调用静态方法,例如
double value1 = 123.1;
double value2 = 24
MethodName1(value1, value2)
进一步阅读这个问题,我意识到您可能正在尝试初始化条件语句或循环内的值。简单地理解当运行语句的条件不满足时会发生什么?答案是该值永远不会被初始化,这就是这里发生的情况。
添加回答
举报