我正在尝试制作一个计算器,其中一部分是实现一个东西,如果它从第一个文本区域读取数字x,然后第二个文本区域为0,它将发出错误信息。以下似乎不起作用......
private void divideButtonActionPerformed(java.awt.event.ActionEvent evt){
int number1, number2;
int y = Integer.parseInt(this.firstInput.getText());
if (y == 0) {
JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE);
}
try {
number1 = Integer.parseInt(
this.firstInput.getText());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
try {
number2 = Integer.parseInt(
this.secondInput.getText());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
int answer = number1 / number2;
this.theAnswer.setText(
"The calculated answer is: " + answer);
}
它似乎没有显示我想要的错误。有人可以帮忙吗?
--------- ---------- EDIT
对不起的家伙我刚刚注意到它说的是this.firstInput而不是this.secondInput。 我完全面对对不起......
谢谢你!
答案 0 :(得分:1)
除了您尝试检查第一个字段而不是第二个字段的值之外,代码的结构仍然允许执行计算,相反,您应该使用if-else
声明,例如。
int number1, number2;
try {
number1 = Integer.parseInt(
this.firstInput.getText());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
try {
number2 = Integer.parseInt(
this.secondInput.getText());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
if (number2 == 0) {
JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE);
} else {
int answer = number1 / number2;
this.theAnswer.setText(
"The calculated answer is: " + answer);
}
}
此外,您已经完成了String
的转换,您也可以使用已有的结果 - 或者尝试进行String
比较,如果您想避免对话共...