我目前正在研究一種計算方法,該方法計算一個包含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