如何使用|和&;在Java while循环中,是否正确使用2个以上的值?

如何使用|和&;在Java while循环中,是否正确使用2个以上的值?,java,Java,我在练习while循环中的条件,有点困惑 我有一个简单的程序,可以通过控制台(使用扫描仪)读取用户的输入。若输入值不等于某个字符串值,则应输出错误并要求用户再次输入 Scanner input=new Scanner(System.in); System.out.print("ENTER YOUR NAME : "); user=input.next(); while(!user.equals("admin") && !user.equals("vla

我在练习while循环中的条件,有点困惑

我有一个简单的程序,可以通过控制台(使用扫描仪)读取用户的输入。若输入值不等于某个字符串值,则应输出错误并要求用户再次输入

Scanner input=new Scanner(System.in);

    System.out.print("ENTER YOUR NAME : ");
    user=input.next();

    while(!user.equals("admin") && !user.equals("vlad") && !user.equals("user"))
    {
        System.out.println("THIS USERNAME IS NOT REGISTERED");
        user=input.next();
    }
所以我认为当我们输入admin时,while循环应该是这样的:
while(F&&T&&T)
它应该中断循环并转到下一条指令,但在输入后程序崩溃

如果我们输入任何值,我们应该得到
while(!F&&!F&&&!F)
并且它应该在while循环中执行指令,但它不执行。那么,我在这些while条件下做错了什么呢?

如下所示修复它

您需要有
字符串用户
并使用
&

Scanner input=new Scanner(System.in);

System.out.print("ENTER YOUR NAME : ");
String user = input.next();

while(!user.equals("admin") && !user.equals("vlad") && !user.equals("user"))
{
    System.out.println("THIS USERNAME IS NOT REGISTRED");
    System.out.print("ENTER YOUR NAME : ");
    user = input.next();
}

可能崩溃是由循环后的代码引起的。我在这段代码后只有siwtch(user),而程序在while循环的阶段崩溃,你的意思是在
while(!F&&!F&&!F&!F)
它没有打印
System.out.println(“此用户名未注册”)?问题在于内部条件,如果“程序崩溃”是指“程序打印堆栈跟踪并退出”,则应发布堆栈跟踪,您应该在代码中添加一条注释,指明stacktrace引用的行。让用户在程序顶部声明,这样我就不会复制代码的这一部分:)。Alredy尝试了OR条件,但它只允许我输入无限次的用户名。您使用的是JDK6还是JDK7?我已经将上面的代码放在一个main方法中,并且能够干净地运行它。当我输入admin作为用户名时,程序停止。否则它将继续循环。这种情况将导致无限循环。当然会。它将循环,直到用户输入admin或valid或user作为输入value@VladTimoshin您的原始代码(如果这是您实际拥有的代码)没有问题。任何问题都存在于其他地方,例如运行错误版本的代码。