Ich versuche es so zu machen, dass, wenn der Benutzername und/oder das Passwort nicht korrekt sind, das Programm es erneut ausführen wird, anstatt nur den Druckbefehl in der else-Anweisung auszuführen. Ich versuchte, eine andere while-Schleife in die else-Anweisung einzufügen und die if-Anweisung darin zu verschachteln, die den Benutzernamen und das Passwort darin prüfte, aber dann erkannte ich, dass ich den gesamten Code aus der if-Anweisung in die else-Anweisung kopieren müsste wie es ist nicht die richtige Lösung und ist wahrscheinlich sehr klobig. Was ist der richtige Weg, um das Programm von Anfang an oder etwas zurück zu verweisen?Ich führe mein Programm in Java aus
// Declare Variables
Scanner input = new Scanner(System.in);
String username;
String password;
String calculator = "calculator";
String renameUser = "renameUser";
String renamePass = "renamePass";
String getIp = "getIp";
String exit = "exit";
String command;
// Prompt User to login
System.out.println("Username: ");
username = input.nextLine();
System.out.println("Password: ");
password = input.nextLine();
if (username.equals("admin") && password.equals("admin")) // Must use the equals method of string class to compare, == operator will NOT work.
{
System.out.println("Success! Welcome " + username + "!");
while (true) // Infinite loop using the true statement
{ command = input.nextLine();
if (command.equals(calculator))
{ // calculator code here
if (command.equals(renameUser))
{ // renameUser code here
if (command.equals(renamePass))
{ // renamePass code here
if (command.equals(getIp))
{ // getIp code here
if(command.equals(exit))
{
break;
}
System.out.println("Logging out!");
}
}
}
}
}
}
else
{
System.out.println("Wrong username or password, please try again.");
}
}
}
Tun Sie einen if/else insa d von verschachtelten ifs. Es ist eine falsche Logik. Verwenden Sie auch equalsIgnoreCase() für nicht-case-sensitive – Li357
@AndrewL Ich verstehe nicht, ich verwende geschachtelte ifs, da jedes, wenn eine bestimmte Funktion hat ausgelöst –
Verschachtelte ifs überprüfen, ob alle Bedingungen wahr sind. – Li357