我目前正在研究一种计算方法,该方法计算一个包含5名学生的课程的平均值。我的问题是如何处理平均法,以便忽略任何尚未创建的学生对象?这里s1,s2,s3,s4和s5是5个'student'类型的对象。那么如何编写公式,以便它忽略任何具有空值的学生,因为它没有被添加?更具体地说,我想编辑“其他”部分。我的代码如下 -如何解决Java中的空对象?
public double average()
{
if (s1 != null && s2 != null && s3 != null && s4 != null && s5 != null)
{
avg = (double) (s1.average() + s2.average() + s3.average() + s4.average() + s5.average())/ counter;
return avg;
}
else
{
avg = 0;
return avg;
}
}
在这种情况下,解决方案很简单:不要if语句写这样。概括。它看起来像你想要一个列表/数组/集合。让程序为你做些工作,或多或少。不要手动编码所有可能的情况。 – keyser 2014-11-23 00:20:37
@keyser是否有任何方法可以在不使用数组的情况下生成此方法,因为我尚未学习它们。我不介意写出所有类型的情况,但如果有人可以告诉我,甚至一个... – ScaVenGerS 2014-11-23 00:23:10
是的,但你没有通过推迟了解他们做任何好处。您可以将x.average()添加到总数中,并记录沿途的非空数量。 'if(s1!= null)total + = s1.average(); numStudents ++;'那样你得到5个if语句,每个学生1个。请注意,我不建议您编写这样的代码:p – keyser 2014-11-23 00:25:05