java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句
我正在学习Java,并编写了一个简单的登录程序来测试我是否可以正确使用我所学的东西,直到现在,我已经将用户名和密码存储为单个变量。我决定使用switch语句来存储用户名和密码,并根据用户输入的用户ID分配它们。这是密码
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int user_attempt = 0;
int pass_attempt = 3;
Boolean LoginSuccessful;
String user_name = null;
String pass = null;
System.out.println("Enter your user ID: ");
int user = input.nextInt();
switch (user){
case 1: user_name = "lucas";
pass = "password";
break;
case 2: user_name = "dave";
pass = "password2";
break;
default: System.out.println("User ID not valid");
}
while(user_attempt < 5){
System.out.println("Enter your username: ");
String username = input.nextLine();
if (username.equals(user_name)){
while(pass_attempt > 0){
System.out.println("Enter your password: ");
String password = input.nextLine();
if(password.equals(pass)){
System.out.println("Login Sucessful");
LoginSuccessful = true;
break;
}
else{
pass_attempt--;
System.out.println("Incorrect password, attempts remaining " + pass_attempt);
}
}
break;
}
else{
System.out.println("Username is not valid!");
user_attempt++;
}
}
if(LoginSuccessful = true){
System.out.println(" ");
}
else{
System.out.println("Login Failed.");
}
}
}
除了运行程序并输入一个用户ID之外,一切似乎都很正常
输入您的用户ID: 1. 输入您的用户名: 用户名无效! 输入您的用户名:
而不是
输入您的用户ID: 1. 输入您的用户名:
我无法理解为什么会发生这种情况,因为从现在开始,程序正常运行,允许我输入用户名和密码,如果正确/不正确,则执行正确的功能。任何帮助都将不胜感激
# 1 楼答案
在
while(user_attempt < 5){
之前添加一个input.nextLine();
以使用nextInt()
留下的换行符/回车符