在java中使用用户名和密码登录系统
问题描述:
我真的很新的Java。我有一个任务,包括3个用户的登录系统。我的问题是程序不断循环。我错过了什么?谢谢。在java中使用用户名和密码登录系统
这是我的代码:
import java.util.Scanner;
public class Project {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
String entryUsername;
String username1 = "mimi";
String username2 = "nurul";
String username3 = "yaya";
int entryPassword;
int password1 = 7104;
int password2 = 7116;
int password3 = 7020;
System.out.println("Enter Username: ");
entryUsername = input.next();
System.out.println("Enter Password: ");
entryPassword = input.nextInt();
while (!(entryUsername.equals(username1)) || !
(entryUsername.equals(username2)) || !
(entryUsername.equals(username3))
&& (entryPassword == password1) || (entryPassword == password2) || (entryPassword == password3)) {
System.out.println("Incorrect Username or Password");
System.out.println("Enter Username: ");
entryUsername = input.next();
System.out.println("Enter Password: ");
entryPassword = input.nextInt();
}
System.out.println("Logged In");
}
}
答
你while
循环应该是这样的1对username
和字符串类型的password
:
while (!(inputUsername.equals(username1) &&
inputPassword.equals(password1)))
{
// Again ask for username and password here...
}
但是,这会很快成为累赘手动编写很多这样的条件。使用这样的while
根本不是一个好主意。它很快就会变得麻烦。或者,您可以拥有用户名和密码数组,并使用它进行验证。像这样的东西(伪代码 - 种):
boolean isValidated = false;
while (!isValidated)
{
for (int i = 0; i < NUM_OF_USERS; ++i)
{
if (inputUsername.equals(arrayUsernames[i]) &&
inputPassword.equals(arrayPasswords[i]))
{
isValidated = true;
break;
}
// Again ask for username and password
}
}
它会更加灵活和可扩展的方式。 您可以使用您选择的任何其他数据结构进行顺序验证。
你的问题不清楚。你不会说你的程序在循环。它表明你没有投入足够的精力去调试它。如果你想成为一名优秀的程序员,你需要学习调试你的代码。本网站不是逻辑和调试技能的替代品。此外,更具体的问题是您在这里得到答案的可能性更高。 – Mustafa