java - 在双数组中尝试并捕获未按我的预期工作

标签 java arrays try-catch numberformatexception

我正在尝试对用户输入执行 try catch,如果通过检查,则将用户输入放入数组中,但如果我输入无效输入,它将用 0 替换该索引并移至下一个索引。我试图找出如何在 for 循环内进行重新提示,以便该特定索引中的无效值被有效的用户输入替换。数组中值的顺序并不重要。我试图在不导入其他 Java 库的情况下做到这一点!

我非常感谢任何帮助!我是编程和 Java 新手。感谢您的时间 !

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;      
    }

最佳答案

public static double[] getAmount()
{
  int MAX_NUM = 10;
  double[] numArray = new double[MAX_NUM];
  int i = 0;
  while (i < numArray.length)
  {
     double numInput;

        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;
           i++;
        }
   }

   return numArray;
}

关于java - 在双数组中尝试并捕获未按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59122803/

相关文章:

php - 在 PHP 中使用 odbc_exec 时使用 try-catch 语句的意外行为

java - 在 JSP 中使用 try 语句时出现输出问题

c++ - 异常在构造函数 try block 中被捕获并处理,但仍会再次被重新抛出

java - 2D 字符串数组转换为 2D Int 数组

javascript - 在javascript 2d矩阵中查找连接的组件

java - 如何处理静态最终变量

javascript - 如何从提交事件处理程序向对象数组添加新元素

javascript - 为特定结构JS的每个对象添加属性?

java - 将词频添加到哈希表

java - 有没有人让 Recaptcha 在 Google App Engine 上运行(用 Java)?