Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用用户名和密码的java登录系统_Java - Fatal编程技术网

使用用户名和密码的java登录系统

使用用户名和密码的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

我对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 = "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
    }
}