Java for循环使用if语句仅迭代一次

阿拉基

我要创建一个用于雇员系统的登录版本,我有一个for循环,该循环应遍历整个帐户列表,然后查看雇员名称是否与列表中的一个匹配,然后if语句继续,再问其他问题,等等。。。它似乎只迭代一次,然后停止,因为它只会找到第一个用户,并告诉我其他帐户不存在,即使它们存在!!我究竟做错了什么?我的列表还包含从Account继承的雇员和经理,if语句使用Account中的getName来比较它是否等于用户输入。抱歉,这很荒谬/糟糕!谢谢。

List <Account> Accounts = new LinkedList<Account>();   

这是我填充帐户的地方,主要方法调用此方法,list()称为whihc包含问题循环

public void add() {
    Employee Geoff = new Employee("Geoff", "password1");
    Manager Bob = new Manager("Bob", "password2");
    Employee John = new Employee("John", "password3");

    Accounts.add(Geoff);
    Accounts.add(Bob);
    Accounts.add(John);
    list();

    }

问题:

System.out.println("Hello welcome: ");
System.out.println("Please enter your name: ");
String empName = Scan.nextLine();

for (Account a : Accounts) { 
        System.out.println(a);
        if (a.getname().equals(empName)) {

            System.out.println("\nPlease enter your passcode: ");

            String code = Scan.nextLine();

                if (a.check(code) == true) {
                    System.out.println("logged in");
                }
            }
        System.out.println("Employee does not exist!");
        login();

    }

我正在for循环中执行print语句,以查看它是什么,但不幸的是,这只是第一个帐户

编辑:我在这里包括更多的代码,我最初的if语句后,我想检查用户输入的代码是否正确。

祖贝格

看看雇员的姓名是否与列表中的一个匹配,然后if语句继续,进一步的问题等等。。。它似乎只重复一次然后停止,因为它只会找到第一个用户,告诉我其他帐户不退出,即使他们这样做!!

它是否适合一个员工,并告诉别人不要的环路,则你的存在确实迭代一次。

您得到的输出正是代码的样子。一次获得用户名然后尝试将相同的名称与列表中的每个员工匹配。如果名称相等,则要求输入密码,否则您将打印出该员工不存在。一切都正确,如代码中所示。您应该在问题中添加预期的行为,以便我或其他人可以在不猜测方法目的的情况下修复您的代码。

这是这些猜测之一:

System.out.println("Please enter your name: ");
String empName = Scan.nextLine();
boolean userFound = false;
for (Account a : Accounts) { 
        System.out.println(a);
        if (a.getname().equals(empName)) {
            System.out.println("\nPlease enter your passcode: ");
            String code = Scan.nextLine();
                if (a.check(code) == true) {
                    System.out.println("logged in");
                    userFound = true;
                    break;
                }
            }
    }

if(userFound) {
    login();
} else {
    System.out.println("User not found.");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java语言中的For循环仅运行一次

来自分类Dev

Java-For循环仅运行一次

来自分类Dev

Java-For循环,带有带默认情况的switch语句。如何获得默认情况下仅打印一次输出?

来自分类Dev

基于Java中的第一次迭代变量分组的嵌套循环的元件

来自分类Dev

Java语言的while循环仅在一次迭代后停止

来自分类Dev

每5个循环迭代递增一次int变量(JAVA)

来自分类Dev

检测Java中for-each循环中的最后一次迭代

来自分类Dev

如何跳过java中while循环的最后一次迭代?

来自分类Dev

Java while 循环跳过用户输入的第一次迭代

来自分类Dev

Java仅一次addMouseListener

来自分类Dev

For循环仅执行一次迭代

来自分类Dev

for循环仅迭代一次

来自分类Dev

检查语句仅循环一次

来自分类Dev

html表中的MySQLi至PHP While循环在if语句中仅迭代一次

来自分类Dev

如何使用Java 8 Streams一次迭代FlatMap 2个不同的字段?

来自分类Dev

一次迭代=>从Java到Scala的多个输出集合

来自分类Dev

Java遍历地图(最后一次迭代除外)

来自分类Dev

是否可以使用eclipse和共享仅构建一次Java项目?

来自分类Dev

如何使用Java在for循环中一次输出多个数字

来自分类Dev

如何在Java中仅设置一次变量

来自分类Dev

java-onMousePressed()仅检测一次

来自分类Dev

在JAVA中仅将XML文件解析一次

来自分类Dev

Java-仅执行一次SQL查询

来自分类Dev

java-onMousePressed()仅检测一次

来自分类Dev

仅while循环的最后一次迭代保存

来自分类Dev

R嵌套循环仅返回最后一次迭代

来自分类Dev

Windows批处理循环仅迭代一次

来自分类Dev

While循环仅查找最后一次迭代

来自分类Dev

While循环仅正确迭代一次

Related 相关文章

热门标签

归档