整数比较问题

时间:2014-01-09 09:36:21

标签: java android

我使用ADT编写下面的代码,并在比较两个整数时遇到一些问题。 这是源代码。

if(longCount == Tsleep)
    Log.d("count", "=:"+longCount);
else if (longCount < Tsleep)
    Log.d("count", "<:"+longCount);
else if(longCount > Tsleep)
   Log.d("count", ">:"+longCount);
longCount++;

“Tsleep”的值是396。 结果如下。

enter image description here

似乎它永远不会遇到“if(longCount == Tsleep)”声明。

有谁知道它有什么问题吗? 请帮助我,非常感谢。

3 个答案:

答案 0 :(得分:3)

如果这些变量是对象,意味着它们是Integers,那么==适用于[-128,127]之间的数字。您可能需要查看JLS以获取更多(重要)信息:

  

如果框中的值p为true,false,则为字节或字符   范围\ u0000到\ u007f,或介于-128和127之间的int或短数字   (包括),然后让r1和r2成为任意两个拳击的结果   转换p。始终是r1 == r2。

的情况

答案 1 :(得分:2)

您在对象上使用“==”运算符。如果对你测试的对象执行integer1 == integer2,如果integer1和Integer2是同一个对象,那么如果它们具有相同的值,则不是!

如果你想知道它们是否具有相同的值,你必须使用integer1.equals(integer2)。

答案 2 :(得分:1)

如果那些是整数而不是整数 - 使用等于而不是==:]