2017-09-14 63 views
-2

爲什麼我的if語句返回兩個測試真實的,但失敗了第三,即使它一樣測試2 我試着做一個基本的籃球記分牌。 我用三行3完全相同的if語句測試,但是第三個失敗JAVA

scoreboard2.homeGoal(3); 

設置總點數爲9,但第三個保持返回虛假陳述。 if語句只允許總共有6分。

public boolean homeGoal(int points) { 
    boolean success = true; 
    if (mHomePoints >= 0 && mHomePoints < 4) { 
     mHomePoints = mHomePoints + points; 
    } else { 
     success = false; 
    } 
    return success; 
} 
+1

offtopic:你可以在運動得分0分? –

+1

'if語句只允許那裏是一個總的6 points'的......不,'if'語句只增加'mHomePoints'如果是3介於0和 –

+1

代碼並不可怕,但你也應該顯示調用您的方法的代碼。 –

回答

0

爲什麼我的if語句返回兩個測試真實的,但失敗的第三...

,因爲你在這裏不明確的邏輯mHomePoints >= 0 && mHomePoints < 4

和只要存儲在mHomePoints得分高於3的方法將返回false ...

+0

它應該是一個||聲明而不是&& – Pop1920

+1

該方法的目標是什麼.. ?? –

+0

該方法的目標是能夠加分等等比分板會顯示點由團隊 – Pop1920

1

假設mHomePoints最初0,主叫homeGoal(3)三次將:

  1. 更新mHomePoints至3,並返回true
  2. 更新mHomePoints至6,並返回true
  3. 返回false

的完全相同的調用會生成3個不同的結果,因爲方法是stateful

0

我只工作了,而不是if(mHomepoints)它應該是if(points)

public boolean homeGoal(int points) { 
    boolean success = true; 
    if (mHomePoints >= 0 && mHomePoints < 4) { 
     mHomePoints = mHomePoints + points; 
    } else { 
     success = false; 
    } 
    return success; 

} 

謝謝大家的幫助。