Java int等式不一致?

时间:2011-09-05 20:19:57

标签: java syntax processing conditional-statements

这让我感到疯狂,因为它完全违反了我去除它的努力:

int k = keyCode; //keyCode being a variable declared by a keyPress
//in the Processing library
//k and keyCode are working properly.
if ((k - UP)*500 == 0); //int UP=38;
{
 println((k-UP)*500 == 0);
 //some other code here
}

结果呢? “false”(并删除'== 0',一个非0的数字)。 据我所知,只有当你使用箭头键时(k == 37,38,39,40; 38为UP)才能使这个条件成立。

是否存在任何此类不一致,以及可能导致此问题的原因? (条件的奇怪格式是因为它解决了类似的问题,RIGHT键无法正常工作,只有k == RIGHT)。

2 个答案:

答案 0 :(得分:8)

if之后你有一个分号,所以println总是被执行。

答案 1 :(得分:5)

你的if之后有一个;。这使得它成为一个空的陈述,然后是一个无条件的块。只需删除if行中的分号。