在静态方法中复制局部变量



在我的脑海中,我正在初始化一个名为grade的变量,并使用if else语句来更改变量。 但是我收到重复的局部变量错误。我返回双倍,所以我初始化为 0.0。我在这里理解"范围"是错误的吗?

public static double finalGrade(double assignment, double midterm, double finalExam) {
double grade=0.0;
double midWorth = divide(midterm,20);
double finalWorth = divide(finalExam,45);
if(finalWorth < midWorth) {
double grade = divide((assignment + finalExam),80); 
}
else  {
double grade = divide((assignment + midterm + finalExam), 100);
}
return grade;
}

声明变量时,只需指定数据类型double一次。更新值时无需。


有代码是这样的,

public static double finalGrade(double assignment, double midterm, double finalExam) {
double grade=0.0; // declaring
double midWorth = divide(midterm,20);
double finalWorth = divide(finalExam,45);
if(finalWorth < midWorth) {
grade = divide((assignment + finalExam),80); // updating value
} else  {
grade = divide((assignment + midterm + finalExam), 100); // updating value
}
return grade;
}

考虑变量的作用域

if(finalWorth < midWorth) {
double grade = divide((assignment + finalExam),80); 
}
else  {
double grade = divide((assignment + midterm + finalExam), 100);
}

if-elsegrade变量的作用域仅限于if-else- 在大括号外不可见

所以做

if(finalWorth < midWorth) {
grade = divide((assignment + finalExam),80); 
}
else  {
grade = divide((assignment + midterm + finalExam), 100);
}

最新更新