确保int变量不超过0的逻辑

时间:2012-01-07 02:58:03

标签: java

好的,我知道这可能很简单,但我出于某种原因正在努力。

我想做的是不允许用户的分数进入否定状态。

例如,用户得分为10 ..然后他们得到-11。而不是int转到-1我想它只是去0。现在,我想到了这个代码到目前为止。

  hitCount -=10;

  if(hitCount <= 0){

     hitCount = 0;

      }else{

     hitCount -=10;
        }

如你所见,我最初扣除了-10但运行检查以确保数字不是负数,如果是,我们将其设置为0.唯一的问题是,当hitCount为11然后 - 10.它减去由于某种原因到-9。

我只是想让它简单地转到0而不是超越它。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

hitCount = Math.max(0, hitCount-10);

答案 1 :(得分:2)

为什么不呢:

hitCount -= 10;
if(hitCount < 0)
{
    hitCount = 0;
}

出现错误是因为如果命中计数为11,则减去10,然后是1.然后,else子句将触发,然后再次减去10。那是你的错误,删除else子句