Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第一次登录无效,第二次登录有效_Java - Fatal编程技术网

Java 第一次登录无效,第二次登录有效

Java 第一次登录无效,第二次登录有效,java,Java,这是一个读取文件的程序,如果文件不存在或为空,它将调用一个方法将对象添加到ArrayList,然后调用一个WriteFile方法将对象写入文件 try{ FileReader fr = new FileReader(managerFile); BufferedReader br = new BufferedReader(fr); }catch (IOException e){ System.out.println("New System

这是一个读取文件的程序,如果文件不存在或为空,它将调用一个方法将对象添加到ArrayList,然后调用一个WriteFile方法将对象写入文件

try{
        FileReader fr = new FileReader(managerFile);
        BufferedReader br = new BufferedReader(fr);


    }catch (IOException e){
        System.out.println("New System. Register as Manager to start using it.");
        manager.add(AddManager());
        WriteFile(managerFile, manager);
    }
    do{
        try{
            select = Personnel();

            switch(select){
                case 1:
                    if(BLogIN(beautician)){
                        Action(select, Menu(select),customer);
                    }
                    else{
                        Main.main(args);
                    }
                    break;
                case 2:
                    if(MLogIN(manager)){
                        Action(select, Menu(select), customer);
                    }
                    else{
                        Main.main(args);
                    }
                    break;
                case 3:
                    break;
                default:
                    System.out.println("Invalid Selection.");
                    System.out.println("Please choose only from the options above");
                    System.out.println("");
                    break;
            }
        }catch (InputMismatchException e){

        }
    }while(select < 1 || select > 3);
在写入文件后,它调用一个Login方法,将前面的ArrayList传递给该方法以处理登录

public static boolean MLogIN(ArrayList<Manager> a){

    boolean valid = true;

    Scanner scan = new Scanner(System.in);

    System.out.print("Enter Manager ID :");
    String id = scan.next();
    System.out.print("Enter Password :");
    String pass = scan.next();
    for(int i = 0; i < a.size(); i++){
        valid = id.equals(a.get(i).getID());
        valid = pass.equals(a.get(i).getPass());
    }

    return valid;
}

在我输入正确的id和密码后,它显示为无效,但我再次登录时,它是有效的。为什么?

检查用户输入是否正确的条件不正确。 它应该如下所示:

public static boolean MLogIN(ArrayList<Manager> a){

    boolean valid = false;

    Scanner scan = new Scanner(System.in);

    System.out.print("Enter Manager ID :");
    String id = scan.next();
    System.out.print("Enter Password :");
    String pass = scan.next();

    for(int i = 0; i < a.size(); i++) {
        if (id.equals(a.get(i).getID()) && pass.equals(a.get(i).getPass())) {
            valid = true;
            break;
        }
    }

    return valid;
}

欢迎来到堆栈溢出!您在问题中发布了许多代码,这使我们和未来的读者不清楚问题的确切位置。请将问题代码减少到10行或更少。请看:而且,我认为您调试自己的代码将比您在此处发布的问题揭示更多的信息。我们无法为您调试代码。@JoeC如果我确切知道问题出在哪里,我甚至不会来这里询问。问题很可能出在登录方法上,但我不知道为什么我认为您误解了堆栈溢出是什么。我们是一个问答网站,不是一个调试服务。我们希望这些问题的写作方式能够在几年后对其他读者有所帮助。我们还希望那些破坏代码的提问者花一些时间在调试器中,以缩小问题的范围。在这两方面,您都没有达到我们的标准,我建议您以符合这些标准的方式编辑您的问题。虽然您可能已经解决了此用户的问题,但仅代码的答案对将来遇到此问题的用户没有多大帮助。请编辑您的答案,解释为什么您的代码解决了原始问题。我已经写了一行您的条件,以检查用户的输入是否正确,是否不正确。应该是这样的:如果条件是错误的,还需要什么解释?当然,现在我不应该解释布尔函数做什么,以及如何写if-else conditionsHi@kavishmital,JoeC想告诉你的是,你可能已经解决了这个问题,但这可以在调试中找到,OP可能没有使用。因此,您可以提供OP可以在其代码中查找以进行更正的信息,而不是告知/更正代码:-@阿曼:你读过OP上面的评论吗?如果我确实知道问题出在哪里,我甚至不会来这里问。OP怀疑他的登录码有问题。这足以说明他试图调试代码,但未能准确找出问题所在。此外,该登录函数没有太多可能存在问题的代码。