我使用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。 结果如下。
似乎它永远不会遇到“if(longCount == Tsleep)”声明。
有谁知道它有什么问题吗? 请帮助我,非常感谢。
答案 0 :(得分:3)
如果这些变量是对象,意味着它们是Integer
s,那么==
适用于[-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)
如果那些是整数而不是整数 - 使用等于而不是==:]