为什么在这种情况下什么都不做

时间:2020-10-12 21:18:44

标签: java if-statement button label

我知道这可能是一个愚蠢的问题,但是几天前我才开始学习,我只是在弄乱,我不确定为什么这行不通,有人可以向我解释一下吗?

我有一个带有按钮的简单窗口,它将点击数加+1,然后单击几下便将它们相乘(该部分起作用),但是当它变为“ else if”并计数为* 4时,它什么也没做

@Override
public void actionPerformed(ActionEvent e) {
    count++;
    label.setText("Number of clicks: " + count);
    if (count > 5){
        label2.setText("Turbo mode activate");
        label.setText("Number of turbo clicks: " + count*2);
    } else if (count > 20){
        label2.setText("SuperTurbo mode activated");
        label.setText("Number of superturbo clicks: " +count*4);
    }

}

}

谢谢您的回答

2 个答案:

答案 0 :(得分:1)

因为即使计数达到100,它也大于5,然后始终执行第一个代码块,否则就永远没有机会。

在您的情况下,您可以说if (count <= 20)然后执行第一个代码块,或者else { .... }执行第二个代码块。

答案 1 :(得分:0)

条件按顺序评估。 count > 5count > 20之前始终为真:大于20的值也大于5。

您可以反转条件以在以后检查更一般的条件,在更早的时候检查更具体的条件。

if (count > 20) {}
else if (count > 5) {}