Java Integer在更改后的第二次更改

Java Integer在更改后的第二次更改,java,Java,我的代码 int selection = 0; if(checkKey(Keyboard.KEY_Z)){ selection++; System.out.println(selection); } if(checkKey(Keyboard.KEY_B)){ selection--; System.

我的代码

int selection = 0;
            if(checkKey(Keyboard.KEY_Z)){
                selection++;
                System.out.println(selection);
            }
            if(checkKey(Keyboard.KEY_B)){
                selection--;
                System.out.println(selection);
            }
似乎功能不正常。整数选择似乎在被键函数更改后立即变回0

以下是与此相关的代码

int selection = 0;
            if(checkKey(Keyboard.KEY_Z)){
                selection++;
                System.out.println(selection);
            }
            else if(checkKey(Keyboard.KEY_B)){
                selection--;
                System.out.println(selection);
            }
            if(selection < 14){
                selection = 1;
            }
            if(selection == -1){
                selection = 14;
            }
            if(Toggles.clickMenu){
                if(selection == 1){
                    var8.drawStringWithShadow(Strings.textsymbol + "b<", 62, 34, 0000);
                    if(this.mc.gameSettings.Enter.isPressed()){
                        Toggles.fly = !Toggles.fly;
                    }
                }else if(selection == 2.0){
                    var8.drawStringWithShadow(Strings.textsymbol + "b<", 62, 46, 0000);
                    if(this.mc.gameSettings.Enter.isPressed()){
                        Toggles.sprint = !Toggles.sprint;
                    }
                }else if(selection == 3){
                    var8.drawStringWithShadow(Strings.textsymbol + "b<", 62, 58, 0000);
                    if(this.mc.gameSettings.Enter.isPressed()){
                        Toggles.autojump = !Toggles.autojump;
                    }
                }
            }

这两个条件都必须是真的。第一个条件的块增加选择变量,第二个条件的块减少选择变量

如果您只希望输入一个条件(最多),则应在以下情况下使用else:

        int selection = 0;
        if(checkKey(Keyboard.KEY_Z)){
            selection++;
            System.out.println(selection);
        }
        else if(checkKey(Keyboard.KEY_B)){
            selection--;
            System.out.println(selection);
        }

如果输入了s,则可能两个都是
。如果输入了
,则可能需要
否则?您如何知道它正在变回?你用什么方法来检查
选择的值
?这个问题缺少很多有用的内容。你不是说你在哪里得到那0或者什么在代码周围。你可能想考虑创建一个。它仍然停留在同一个数字上。odd@WhatTheFruit那你能给我们看完整的代码吗?当然可以,修改一下now@WhatTheFruit
checkKey
的代码是什么?过去没有遇到过问题的帖子。
public GuiIngame(Session p_i1103_1_, Minecraft p_i1036_1_) {
        this.session = p_i1103_1_;
        String username = p_i1103_1_.getUsername();
        keyStates = new boolean [256];
        this.mc = p_i1036_1_;
        this.persistantChatGUI = new GuiNewChat(p_i1036_1_);
        this.field_152127_m = new GuiStreamIndicator(this.mc);
    }
    public boolean checkKey(int i){
        if(mc.currentScreen != null){
            return false;
        }

        if(Keyboard.isKeyDown(i) != keyStates[i]){
            return keyStates[i] = !keyStates[i];
        }else{
            return false;
        }
    }
        int selection = 0;
        if(checkKey(Keyboard.KEY_Z)){
            selection++;
            System.out.println(selection);
        }
        else if(checkKey(Keyboard.KEY_B)){
            selection--;
            System.out.println(selection);
        }