0

我已经用java写了这个并且不断得到一个没有if错误的else。我一遍又一遍地检查它,找不到错误。如果他们与程序的其余部分有问题,这真的是一个缺失吗?

public class Password {

     public static void main(String[] args) {

        //int Counter = 0;

         String[] UserName = {
            "William Whitcomb" , "Pamela Healy" ,
            "Dennis Clark" , "Troy Bingham" ,
            "Bill Mauler"
         };
        String[] Password = {
            "WWhit0523" , "PHeal0854" ,
            "DClar1053" , "TBing1272" ,
            "BMaul0968"
         };
          String EnterName = JOptionPane.showInputDialog ( "Enter a valid user name.",     //Name pane window
          "User Name");
          String EnterPassword = JOptionPane.showInputDialog ( "Enter a valid password.",       //Age pane window
          "Password");
          for (int Counter = 0; Counter < UserName.length;){
            Validate();
            if (Validate() = true) {
                JOptionPane.showMessageDialog (null, "You entered the User Name of " + UserName[Counter] +
                "and the password of " + Password[Counter]);  //Results pane
                }
            }   //End of for
        }  //End of Method


        Boolean Validate(String EnterName , String EnterPassword){
                Boolean Condition = false;

                    if (EnterName.equals(UserName[Counter])) {
                        if (EnterPassword.equals(Password[Counter])) {
                        Condition = true;
                        return //Condition;
                        } else {
                            JOptionPane.showMessageDialog (null, "You have entered an invalid password.");
                            Counter += 1;
                                }    //End of Inner Else

                    } else {
                        JOptionPane.showMessageDialog (null, "You have entered an invalid user name.");
                        Counter += 1;
                        }  //End of Outer Else
                } //End of outer if
            }  //End of Method
    }   //End of Class
4

5 回答 5

4

我认为问题出在这一行:

return //Condition;

您不小心将分号注释掉了,随后又引发了一个不相关的解析错误。

在一些相关的说明中,当您的函数返回 a 时boolean,您不应将结果与trueor进行比较false。只是写if (Validate())...if (!Validate())...代替。

于 2013-02-11T04:02:06.597 回答
2

我看到至少一个错误: Validate() = true应该是Validate() == true. 您正在分配而不是使用比较。

甚至更短,if(Validate())也会起作用。

但是错误本身很可能是由于返回后缺少分号造成的。

于 2013-02-11T04:01:01.540 回答
1

你不需要

} //End of outer if

因为你之前已经关闭了它else。删除此行。

查看代码的格式化版本

Boolean Validate(String EnterName, String EnterPassword) {
    Boolean Condition = false;

    if (EnterName.equals(UserName[Counter])) {
        if (EnterPassword.equals(Password[Counter])) {
            Condition = true;
            return Condition;
        } else {
            JOptionPane.showMessageDialog(null,
                    "You have entered an invalid password.");
            Counter += 1;
        } // End of Inner Else

    } else {
        JOptionPane.showMessageDialog(null,
                "You have entered an invalid user name.");
        Counter += 1;
    } // End of Outer Else
--> } //End of outer if                 <-- You don't want this line
} // End of Method
于 2013-02-11T04:06:04.787 回答
0

以下是您需要更改的内容列表:

  • 在你的课结束时你有一个额外的支架。去掉它。
  • 您的Validate方法正在使用变量UserNameCounter并且Password从未在任何地方声明过
  • 您的Validate方法有一个return不以分号结尾的语句
  • 您的 main 方法,在 for 循环中,两次调用Validate都没有参数(您需要其中两个)
  • 您的主要方法,您的第一次调用Validate实际上是一个无操作(您不对返回值做任何事情)。去掉它。

所有这些问题都会被一个中规中矩的 IDE 突出显示。我强烈推荐使用一个。

于 2013-02-11T04:08:18.887 回答
0

我在方法 validate 中看到了一个额外的 }。我的意思是还有一个 } 在方法 validate() 中。请仔细查看您的代码。请删除它。和 ; return 语句中缺少。该方法应为

Boolean Validate(String EnterName , String EnterPassword){
            Boolean Condition = false;
                if (EnterName.equals(UserName[Counter])) 
                {
                    if (EnterPassword.equals(Password[Counter])) 
                    {
                    Condition = true;
                    return;
                    } 
                else 
                    {
                        JOptionPane.showMessageDialog (null, "You have entered an invalid password.");
                        Counter += 1;
                    }    //End of Inner Else

                } // if closed here
                else {
                    JOptionPane.showMessageDialog (null, "You have entered an invalid user name.");
                    Counter += 1;
                    }  //End of Outer Else
        }  //End of Method
于 2013-02-11T04:05:47.953 回答