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.");
Run Code Online (Sandbox Code Playgroud)
为什么它总是显示你输了,即使我的输入是一个必须赢的数字?
你忘记{}了else为什么Lose声明总是被执行.
else块中唯一的陈述是
lblRand1.setText(Integer.toString(randomNum1));lblOutput.setText("YOU LOSE.");if条件是true和label一起设置You Win,lblOutput.setTest("You Lost")也是正常程序执行的结果,因为它不在else块中更改
else
lblRand1.setText(Integer.toString(randomNum1));
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");
Run Code Online (Sandbox Code Playgroud)
至
else{
lblRand1.setText(Integer.toString(randomNum1));
lblRand2.setText(Integer.toString(randomNum2));
lblOutput.setText("YOU LOSE.");
}
Run Code Online (Sandbox Code Playgroud)