我在嵌套一些 if-else 语句时遇到问题,至少我认为这是问题所在。我已经多次屠杀这段代码试图弄清楚它,所以我决定把它恢复到原来的状态并寻求帮助。要求用户输入 3 到 15 之间的奇数。我需要验证该输入,如果它不在 3 到 15 之间,则输出错误消息。如果它不是奇数也是如此,它需要输出一个不同的数字。运行下面的代码时,如果我输入偶数、字母或数字 <3 或 >15,我会收到两条错误消息。如果输入是 3 到 15 之间的奇数,则可以正常工作。我知道我必须区分这两个错误,只是无法弄清楚如何做到这一点并使代码正常运行/工作。如果没有运气,也尝试过其他方法。当然这是一件很愚蠢的事情,因为我的大部分错误似乎都是愚蠢的。谢谢你的帮助!
public static void main(String[] args) {
// Declare variables
String inputString;
boolean done = false;
int numRows = 0;
// Prompt for user input
do
{
inputString = JOptionPane
.showInputDialog("Enter number of rows (odd number between 3 and 15): ");
// Validating input
try
{
numRows = Integer.parseInt(inputString);
}
catch (NumberFormatException e)
{
done = true;
}
if(numRows % 2 == 0) // Validating input is an odd number
done = true;
if((numRows < 3) || (numRows > 15))// Validating input is between 3 and 15
done = true;
else
done = false;
if(done)
JOptionPane.showMessageDialog(null, "Error, not an ODD number. Re-enter odd number between 3 and 15",
"Error", JOptionPane.ERROR_MESSAGE);
if(done)
JOptionPane.showMessageDialog(null, "Error, number not between 3 and 15. Re-enter odd number between 3 and 15",
"Error", JOptionPane.ERROR_MESSAGE);
}
while(done);
}