条件语句不适用于Java

条件语句不适用于Java,java,if-statement,Java,If Statement,为什么它总是显示“即使我的输入是一个必须赢的数字,您也会输?”您忘记了{}否则这就是为什么总是执行lose语句的原因 这就是为什么else块中唯一的语句是 lblRand1.setTextInteger.toStringrandomNum1; 在此之后,程序将正常运行,以执行lblOutput.settext。; 因此,即使您的if条件为真且标签设置为“您赢了”,lblOutput.setTestYou Lost也会作为正常程序执行的结果执行,因为它不在else块中 改变 int number;

为什么它总是显示“即使我的输入是一个必须赢的数字,您也会输?”

您忘记了{}否则这就是为什么总是执行lose语句的原因

这就是为什么else块中唯一的语句是 lblRand1.setTextInteger.toStringrandomNum1; 在此之后,程序将正常运行,以执行lblOutput.settext。; 因此,即使您的if条件为真且标签设置为“您赢了”,lblOutput.setTestYou Lost也会作为正常程序执行的结果执行,因为它不在else块中 改变

int number;
  int randomNum1= (int)(Math.random() * 12 + 1);
 int randomNum2= (int)(Math.random() * 12 + 1);
    try{
        number = Integer.parseInt(this.txtInput.getText());
    }
    catch (Exception e){
        JOptionPane.showMessageDialog(this, "Please input a integer.", "Error",
                JOptionPane.ERROR_MESSAGE);
        return;
        }                
    if (number > randomNum1 && number < randomNum2 ||  number > randomNum2 && number  < randomNum1){
    lblRand1.setText(Integer.toString(randomNum1));
    lblRand2.setText(Integer.toString(randomNum2));
    lblOutput.setText("YOU WIN.");
    }else
    lblRand1.setText(Integer.toString(randomNum1));
    lblRand2.setText(Integer.toString(randomNum2));
    lblOutput.setText("YOU LOSE.");

永远不要使用没有大括号的语句。请参见其他

相当于

if ([...]){
  ...
}else
lblRand1.setText(Integer.toString(randomNum1));
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");

你忘了把街区换成别的了

此外,还可以使用Math.max和Math.min简化条件

if ([...]){
  ...
} else {
  lblRand1.setText(Integer.toString(randomNum1));
}
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");

有助于获胜的条件是什么?这是Java而不是Java。
if ([...]){
  ...
}else
lblRand1.setText(Integer.toString(randomNum1));
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");
if ([...]){
  ...
} else {
  lblRand1.setText(Integer.toString(randomNum1));
}
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");
lblRand1.setText(Integer.toString(randomNum1));
lblRand2.setText(Integer.toString(randomNum2));
if (number > Math.min(randomNum1, randomNum2) 
    && number < Math.max(randomNum1, randomNum2)){
    lblOutput.setText("YOU WIN.");
} else {
    lblOutput.setText("YOU LOSE.");
}