Java Try&;双数组中的捕获未按预期工作
我试图对用户输入执行try-catch,如果用户输入通过检查,则将其放入数组中,但如果输入无效的输入,则会将该索引替换为0并移动到下一个索引。我试图找出如何让reprompt在for循环中工作,以便用有效的用户输入替换该特定索引中的无效值。数组中值的顺序并不重要。我正在尝试在不导入其他Java库的情况下执行此操作 我将非常感谢任何帮助!我不熟悉编程和Java。谢谢你抽出时间Java Try&;双数组中的捕获未按预期工作,java,arrays,try-catch,numberformatexception,Java,Arrays,Try Catch,Numberformatexception,我试图对用户输入执行try-catch,如果用户输入通过检查,则将其放入数组中,但如果输入无效的输入,则会将该索引替换为0并移动到下一个索引。我试图找出如何让reprompt在for循环中工作,以便用有效的用户输入替换该特定索引中的无效值。数组中值的顺序并不重要。我正在尝试在不导入其他Java库的情况下执行此操作 我将非常感谢任何帮助!我不熟悉编程和Java。谢谢你抽出时间 public static double[] getAmount() { int MAX_NUM = 1
public static double[] getAmount()
{
int MAX_NUM = 10;
double[] numArray = new double[MAX_NUM];
for (int i = 0; i < numArray.length;i++)
{
double numInput;
do
{
try
{
numInput = Double.parseDouble(JOptionPane.showInputDialog("Enter amounts in $: "));
}
catch (NumberFormatException e)
{
numInput = MAX_NUM - 11;
}
if (numInput < 0 || numInput > 999999)
{
JOptionPane.showMessageDialog(null, "Error. Please enter valid amount in dollars");
numInput = Double.parseDouble(JOptionPane.showInputDialog("Enter amount in $: "));
}
else
{
numArray[i] = numInput;
}
}
while (numInput < 0 && numInput > 999999);
}
return numArray;
}
publicstaticdouble[]getAmount()
{
int MAX_NUM=10;
double[]numaray=新的双精度[MAX_NUM];
for(int i=0;i99999)
{
JOptionPane.showMessageDialog(null,“错误。请输入有效金额(美元)”;
numInput=Double.parseDouble(JOptionPane.showInputDialog(“以美元为单位输入金额”);
}
其他的
{
Numaray[i]=努米普特;
}
}
而(numInput<0&&numInput>99999);
}
返回努马拉;
}
公共静态双[]getAmount()
{
int MAX_NUM=10;
double[]numaray=新的双精度[MAX_NUM];
int i=0;
而(i99999)
{
JOptionPane.showMessageDialog(null,“错误。请输入有效金额(美元)”;
numInput=Double.parseDouble(JOptionPane.showInputDialog(“以美元为单位输入金额”);
}
其他的
{
Numaray[i]=努米普特;
i++;
}
}
返回努马拉;
}
这应该可以:
public static double[] getAmount()
{
int MAX_NUM = 10;
double[] numArray = new double[MAX_NUM];
for (int i = 0; i < numArray.length;i++)
{
double numInput;
do
{
try
{
numInput = Double.parseDouble(JOptionPane.showInputDialog("Enter amounts in $: "));
}
catch (NumberFormatException e)
{
numInput = MAX_NUM - 11;
}
if (numInput < 0 || numInput > 999999)
{
JOptionPane.showMessageDialog(null, "Error. Please enter valid amount in dollars");
}
}
while (numInput < 0 || numInput > 999999);
numArray[i] = numInput;
}
return numArray;
}
公共静态双[]getAmount()
{
int MAX_NUM=10;
double[]numaray=新的双精度[MAX_NUM];
for(int i=0;i99999)
{
JOptionPane.showMessageDialog(null,“错误。请输入有效金额(美元)”;
}
}
而(numInput<0 | | numInput>99999);
Numaray[i]=努米普特;
}
返回努马拉;
}
您应该尝试while循环,因为您需要控制iOh。非常感谢!我对使用for循环的想法非常着迷。我在if语句中的错误消息之后删除了该语句,它工作得非常好。再次感谢你!
public static double[] getAmount()
{
int MAX_NUM = 10;
double[] numArray = new double[MAX_NUM];
for (int i = 0; i < numArray.length;i++)
{
double numInput;
do
{
try
{
numInput = Double.parseDouble(JOptionPane.showInputDialog("Enter amounts in $: "));
}
catch (NumberFormatException e)
{
numInput = MAX_NUM - 11;
}
if (numInput < 0 || numInput > 999999)
{
JOptionPane.showMessageDialog(null, "Error. Please enter valid amount in dollars");
}
}
while (numInput < 0 || numInput > 999999);
numArray[i] = numInput;
}
return numArray;
}