为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决此代码中的“代码额外进入其他部分”while循环问题?

如何解决此代码中的“代码额外进入其他部分”while循环问题?

慕森王 2022-05-12 16:21:00
我正在尝试打印用户名和密码,但是代码两次输入 else 部分。我为条件添加了打印功能。在用户名和密码匹配的情况下,我接受了"Matched!"和"Invalid username or password!"消息。在唯一匹配的用户名的情况下,我接受"Username!"并"Invalid username or password!"发送消息。在唯一匹配的密码的情况下,我采取了"Password"和"Invalid username or password!"消息。如果没有匹配,我会收到"Invalid username or password!"两次消息。下面是代码Statement myStmt = myConn.createStatement();ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");while(resultSet.next()) {    if(resultSet.getString("username").matches(textField_1.getText()) && resultSet.getString("password").matches(textField_2.getText())) {        System.out.println("Matched!");    } else {        System.out.println("Invalid username or password!");    }}结果假设为“匹配!” 为有效的密码和用户名。结果假设为“无效的用户名或密码!” 对于无效的用户名或密码。
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

您基本上将所有员工详细信息存储到 resultSet 中,但随后您将遍历它们中的每一个。如果您有 3 组用户名和密码并且只有一组匹配,那么您将获得


Matched!

Invalid

Invalid

相反,您可能只想检查一个用户名和密码?不确定您在寻找什么。此外,当您比较用户名和密码时,请使用 .equals()。


编辑


编辑上面的答案,使用.equals()而不是.matches().


Statement myStmt = myConn.createStatement();


ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");


boolean check = false;


while(resultSet.next()){ 


    if(resultSet.getString("username").equals(textField_1.getText()) && 

       resultSet.getString("password").equals(textField_2.getText()))

    { 


        System.out.println("Matched!");

        check = true;

        break;


    }


}


if (check == false){


      System.out.println("Invalid username or password!");

}


查看完整回答
反对 回复 2022-05-12
?
哔哔one

TA贡献1854条经验 获得超8个赞

Statement myStmt = myConn.createStatement();

ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");

boolean check = false;

while(resultSet.next()){ 

    if(resultSet.getString("username").matches(textField_1.getText()) && resultSet.getString("password").matches(textField_2.getText())){ 

        System.out.println("Matched!");

        check = true;

        break;

    }


}

if (check == false){


      System.out.println("Invalid username or password!");

}

现在 while 循环将搜索正确的用户名和密码,如果没有将打印 Invalid。


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号