没有if错误的java else

时间:2013-02-11 03:59:38

标签: java

我已经在java中写了这个并且如果没有错误就继续获取其他内容。我一遍又一遍地重复它,找不到错误。如果他们在程序的其余部分出现问题,这真的是一个缺失吗?

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

5 个答案:

答案 0 :(得分:4)

我认为问题出在这一行:

return //Condition;

您意外地注释掉了分号,提示在路上发生无关的分析错误。

在某种相关说明中,当您的函数返回boolean时,您不应将结果与truefalse进行比较。只需写下if (Validate())...if (!Validate())...即可。

答案 1 :(得分:2)

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

即使更短,if(Validate())也可以。

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

答案 2 :(得分: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

答案 3 :(得分:0)

我在方法验证中看到了一个额外的}。我的意思是在方法validate()中有一个}。请仔细查看您的代码。请删除它。和;在退货声明中遗漏。方法应该是

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

答案 4 :(得分:0)

下面列出了你需要改变的事项:

  • 你班上最后有一个额外的支具。删除它。
  • 您的Validate方法正在使用永远不会在任何地方声明的变量UserNameCounterPassword
  • 您的Validate方法的return语句未以分号结尾
  • 你的主要方法,在for循环中,对Validate的两次调用都是在没有参数的情况下进行的(你需要两个)
  • 您的主要方法,您对Validate的第一次调用实际上是无操作(您不会对返回值执行任何操作)。删除它。

所有这些问题都会被中途体面的IDE强调。我强烈建议使用一个。