gpt4 book ai didi

java - 程序似乎跳过了 if 语句的一部分,在移回正确位置之前移至 else 语句

转载 作者:行者123 更新时间:2023-11-30 03:28:16 25 4
gpt4 key购买 nike

我正在学习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输入您的用户名:

我无法弄清楚为什么会发生这种情况,因为程序从此时开始正常运行,让我输入用户名和密码,并在正确/不正确的情况下执行正确的功能。任何有关此问题的帮助将不胜感激!

最佳答案

添加input.nextLine();之前while(user_attempt < 5){消耗 nextInt() 留下的换行符/回车符

关于java - 程序似乎跳过了 if 语句的一部分,在移回正确位置之前移至 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29671724/

25 4 0