需要帮助在我的java程序中插入while循环。希望程序更好地处理不正确的输入
这是迄今为止我的代码,只有在输入匹配的用户名和密码后,works才会显示欢迎消息 我不确定如何集成while循环,如果usernameInput字符串与username字符串不匹配,则该循环会阻止用户进入密码阶段,并反复循环,直到输入正确的用户名。之后,我希望对passwordInput字符串执行相同的操作,直到它与密码字符串匹配为止。其想法是让程序能够反复循环,直到用户输入正确的用户名和密码 [注意:我是从python的基础知识开始学习java的,所以一切都可能有点混乱和低效]需要帮助在我的java程序中插入while循环。希望程序更好地处理不正确的输入,java,while-loop,Java,While Loop,这是迄今为止我的代码,只有在输入匹配的用户名和密码后,works才会显示欢迎消息 我不确定如何集成while循环,如果usernameInput字符串与username字符串不匹配,则该循环会阻止用户进入密码阶段,并反复循环,直到输入正确的用户名。之后,我希望对passwordInput字符串执行相同的操作,直到它与密码字符串匹配为止。其想法是让程序能够反复循环,直到用户输入正确的用户名和密码 [注意:我是从python的基础知识开始学习java的,所以一切都可能有点混乱和低效] import
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
String username,usernameInput, password, passwordInput;
username= "KenBoneL0ver";
password= "KenBone4Life";
Scanner myObj1= new Scanner(System.in);
System.out.println("Please enter your username:");
usernameInput= myObj1.nextLine();
if (!usernameInput.equals(username)) {
System.out.println("Incorrect username. Please try again:");
}
else {
System.out.println("Now please enter the correct password:");
}
Scanner myObj2= new Scanner(System.in);
passwordInput= myObj2.nextLine();
if (!passwordInput.equals(password)) {
System.out.println("Incorrect password. Please try again:");
}
else {
System.out.println("You have successfully logged in!");
}
myObj1.close();
myObj2.close();
}
}
谢谢你的帮助 你能检查一下你是否在找这样的东西吗
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
Scanner myObj1 = null;
try {
String username, usernameInput, password, passwordInput;
username = "KenBoneL0ver";
password = "KenBone4Life";
myObj1 = new Scanner(System.in);
while (true) {
System.out.println("Please enter your username:");
usernameInput = myObj1.nextLine();
if (!usernameInput.equals(username)) {
System.out.println("Incorrect username. Please try again:");
continue;
}
break;
}
while (true) {
// Scanner myObj2 = new Scanner(System.in);
System.out.println("Now please enter the correct password:");
passwordInput = myObj1.nextLine();
if (!passwordInput.equals(password)) {
System.out.println("Incorrect password. Please try again:");
continue;
} else {
System.out.println("You have successfully logged in!");
break;
}
}
// myObj2.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (myObj1 != null) {
myObj1.close();
}
}
}
}
输出:
Please enter your username:
test
Incorrect username. Please try again:
Please enter your username:
KenBoneL0ver
Now please enter the correct password:
test
Incorrect password. Please try again:
Now please enter the correct password:
KenBone4Life
You have successfully logged in!
您可以使用while循环:
while (someBooleanCondition) {
statement(s);
}
当这两个条件都为true password和username时,布尔条件将中断while循环并告诉用户他们已成功登录
在检查内部条件时,可以使用赋值运算符,同时: 虽然username.equalUsernameInput=scan.nextLine。这样就不需要任何额外的布尔变量和/或break/continue语句来实现必要的流 除了与扫描仪使用相关的评论: 不需要创建单独的实例来输入用户名和密码。 很高兴看到您关心关闭两个Scanner实例。但是,使用try with resources构造可以保证实现自动关闭接口的资源将自动关闭。 也就是说,代码可以重写如下: 导入java.util.Scanner; 公共类登录{ 公共静态无效字符串[]args{ 一串 用户名=用户, 密码=pswd, 用户名输入, 密码输入; 尝试扫描仪扫描=新建ScannerSystem.in{ System.out.println请输入您的用户名:; while!username.equalusernameinput=scan.nextLine{ System.out.println用户名不正确。请重试:; } System.out.PrintLNow请输入正确的密码:; while!password.equalpasswordinput=scan.nextLine{ System.out.println密码不正确。请重试:; } System.out.println您已成功登录!; } } }
创建一个while循环,该循环在布尔变量为false时继续,然后在给出正确的用户名和密码后,在循环内将该变量设置为true。我的主要目标是复制我过去在python中所做的事情,然而,在找到了对此的支持之后,我很难理解java处理用户输入的方式。然而,你的编辑正是我想要做的。非常感谢你。你不知道有什么适合初学者的好资源可以解释try、continue、break关键字吗?