使用用户名和密码的java登录系统
我对java真的很陌生。我有一个任务,包括登录系统与3个用户。我的问题是程序一直在循环。我在哪里失踪?谢谢 这是我的代码:使用用户名和密码的java登录系统,java,Java,我对java真的很陌生。我有一个任务,包括登录系统与3个用户。我的问题是程序一直在循环。我在哪里失踪?谢谢 这是我的代码: import java.util.Scanner; public class Project { public static void main(String[]args) { Scanner input = new Scanner(System.in); String entryUsername; String username1 = "mim
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
循环应该是这样的:
while ( !( inputUsername.equals( username1 ) &&
inputPassword.equals( password1 ) ) )
{
// Again ask for username and password here...
}
但是,手动编写大量这样的条件很快就会变得很麻烦。像那样使用,
根本不是个好主意。它很快就会变得笨重。或者,您可以拥有用户名和密码数组,并使用它们进行验证。类似这样的东西(伪代码——有点):
boolean isValidated=false;
而(!isValidated)
{
for(int i=0;i
这样会更加灵活和可扩展。
您可以使用您选择的任何其他数据结构进行顺序验证。您的问题不清楚。你不能说你的程序在哪里循环。这表明您在调试它时没有投入足够的精力。如果你想成为一名优秀的程序员,你需要学会调试你的代码。这个网站不能替代逻辑和调试技能。你的问题越具体,你在这里得到答案的机会就越大。
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
}
}