我正在开发一个验证id和密码的程序,我认为我在验证时遇到了无限循环。当我单击“登录”按钮时,没有任何反应。我是Java的新手,还不知道要解决这个问题。
代码如下:
public void actionPerformed(ActionEvent e) {
success = false;
// Sequential search
int i = 0;
while (i < validID.length) {
;
}
{
if (idField.getText().compareTo(validID[i]) == 0) {
if (passwordField.getText().compareTo(validPassword[i]) == 0) {
success = true;
}
}
i = i + 1;
}
if (success == true) {
headerLabel.setText("Login successful");
idField.setText("");
passwordField.setText("");
idField.requestFocus();
} else {
headerLabel.setText("Unsuccessful. Try Again");
idField.setText("");
passwordField.setText("");
idField.requestFocus();
}
repaint();
}
答案 0 :(得分:1)
这个街区的目的是什么?
while (i < validID.length) {
;
}
如果validID.length
大于i
(最有可能的话),那么该循环将永远不会终止。
似乎你想要删除额外的大括号(和分号;那个东西必须去)以使块有意义。这是看起来像:
while (i < validID.length) {
if (idField.getText().compareTo(validID[i]) == 0) {
if (passwordField.getText().compareTo(validPassword[i]) == 0) {
success = true;
}
}
i = i + 1;
}
答案 1 :(得分:0)
int i = 0;
while (i < validID.length) {
;
}
如果validID.length
大于零,这显然是无限循环。