Or operand with int in if statement

前端 未结 12 1952
傲寒
傲寒 2021-01-25 07:45

My problem is that program is not reading codes as i intended \"he\" would.

I have

if (hero.getPos() == (6 | 11 | 16)) {
    move = new Object[] {\"Up\",         


        
12条回答
  •  旧巷少年郎
    2021-01-25 08:02

    You cannot do it like that. It ors the 3 number bitwise.

    You have to do like this :

    if (hero.getPos() == 6 || hero.getPos() == 11 | hero.getPos() == 16)) {
        move = new Object[] {"Up", "Right", "Left"};
    } else {
        move = new Object[] {"Up", "Down", "Right", "Left"};
    }
    

    You see the difference ? | is a bitwise or while || is a logical or. Note also that you have to rewrite the comparison each time.

提交回复
热议问题