这让我感到疯狂,因为它完全违反了我去除它的努力:
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)。
答案 0 :(得分:8)
if
之后你有一个分号,所以println
总是被执行。
答案 1 :(得分:5)
你的if之后有一个;
。这使得它成为一个空的陈述,然后是一个无条件的块。只需删除if行中的分号。