来自关于字符串检查的 if 语句的无法访问的代码
Unreachable code from if-statement about String checks
出于某种原因,我收到一条错误消息,指出 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); }
}
您的语法不正确,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); }
}
出于某种原因,我收到一条错误消息,指出 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); }
}
您的语法不正确,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); }
}