我已经在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
答案 0 :(得分:4)
我认为问题出在这一行:
return //Condition;
您意外地注释掉了分号,提示在路上发生无关的分析错误。
在某种相关说明中,当您的函数返回boolean
时,您不应将结果与true
或false
进行比较。只需写下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
方法正在使用永远不会在任何地方声明的变量UserName
,Counter
和Password
Validate
方法的return
语句未以分号结尾Validate
的两次调用都是在没有参数的情况下进行的(你需要两个)Validate
的第一次调用实际上是无操作(您不会对返回值执行任何操作)。删除它。所有这些问题都会被中途体面的IDE强调。我强烈建议使用一个。