2017-09-14 62 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; 

} 

谢谢大家的帮助。