String inputRules = JOptionPane.showInputDialog
  (
  "Enter your rules. \n" +
  "In the form: a=x"
  );

    boolean gotGoodRuleInput = false;

    while (!gotGoodRuleInput)
    {
      gotGoodRuleInput = true;

      char a = inputRules.charAt(0);

      for (int i= 2; i<inputRules.length(); i++)
      {
      char x = inputRules.charAt(i);
      if (a == x)
      {
        JOptionPane.showMessageDialog
        (
          null,
          "a can not equal x",
          "Error",
          JOptionPane.ERROR_MESSAGE
        );
        gotGoodRuleInput = false;
       }
      }
    }


您好我正在尝试检查用户输入,如果x处的输入等于a,则将显示错误对话框。我遇到的问题是错误对话框“ a不能等于x”不断出现,并且在单击OK时不会关闭。我认为它与for循环有关,但我无法弄清楚。

最佳答案

您的inputRules设置不在循环之内,因此一旦遇到错误情况,您将永远不会摆脱它。

09-25 21:46