有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于字符串检查的IFN语句中的java不可访问代码

出于某种原因,我得到了一个错误,即行currentUser = gar.getAccount(userN);是不可访问的,但它不应该是Garage.getAccount()只是从Hashmap检索。两个if语句都没有相互对抗,我也尝试过添加else语句,但不管它说什么,这行都是无法到达的

package main;

import java.util.Scanner;

public class Main {

    private static Scanner input;
    private static Garage gar;
    private static Attendant currentUser;
    private static boolean isManager;

    public static void main(String[] args) {
        input = new Scanner(System.in);
        gar = new Garage(10, 80, 10);
        currentUser = null;
        while (currentUser == null)
            logIn();
    }

    public static void logIn() {
        System.out.println("Enter username: ");
        String userN = input.nextLine();
        System.out.println("Enter password:");
        String userP = input.nextLine();
        //if no username, go back
        if(gar.getAccount(userN) == null) { 
            error("Incorrect username");
            return;
        } 
        if(gar.getAccount(userN).getPassword().equals(userP) == false); { //if entered password doesn't match
            error("Incorrect password");
            return;
        } 
        currentUser = gar.getAccount(userN);
        return;
    }

    //update to throw error pop-up later
    public static void error(String er) { System.out.println(er); }
}

共 (1) 个答案

  1. # 1 楼答案

    您的语法不正确,if语句的条件不应以分号结尾

     package main;
    
        import java.util.Scanner;
    
        public class Main {
    
            private static Scanner input;
            private static Garage gar;
            private static Attendant currentUser;
            private static boolean isManager;
    
            public static void main(String[] args) {
                input = new Scanner(System.in);
                gar = new Garage(10, 80, 10);
                currentUser = null;
                while (currentUser == null)
                    logIn();
            }
    
            public static void logIn() {
                System.out.println("Enter username: ");
                String userN = input.nextLine();
                System.out.println("Enter password:");
                String userP = input.nextLine();
                //if no username, go back
                if(gar.getAccount(userN) == null) { 
                    error("Incorrect username");
                    return;
                } 
                if(gar.getAccount(userN).getPassword().equals(userP) == false) { //if entered password doesn't match
                    error("Incorrect password");
                    return;
                } 
                currentUser = gar.getAccount(userN);
                return;
            }
    
            //update to throw error pop-up later
            public static void error(String er) { System.out.println(er); }
        }