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)