Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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_Loops_While Loop_Boolean - Fatal编程技术网

Java 输入正确值后,程序不会退出循环

Java 输入正确值后,程序不会退出循环,java,loops,while-loop,boolean,Java,Loops,While Loop,Boolean,我在这个程序中遇到了一个问题,当我输入一个正确的值时,它会给我正确的输出,但它也会要求我再次输入我的名字。当我输入错误值3次时,它将终止程序,尽管它不会打印错误消息。我不知道如何改变它,使它只输出你验证你可以使用电梯 import java.util.Scanner; public class Username { public static void main (String[]args) { Scanner kb = new Scanner (System.in)

我在这个程序中遇到了一个问题,当我输入一个正确的值时,它会给我正确的输出,但它也会要求我再次输入我的名字。当我输入错误值3次时,它将终止程序,尽管它不会打印错误消息。我不知道如何改变它,使它只输出你验证你可以使用电梯

import java.util.Scanner;


public class Username
{


public static void main (String[]args)



{   
    Scanner kb = new Scanner (System.in);
    // array containing usernames 
    String [] name = {"barry", "matty", "olly","joey"}; // elements in array
    boolean x;
                x = false;
    int j = 0;
            while (j < 3)
            {


                System.out.println("Enter your name");
                String name1 = kb.nextLine();
                boolean b = true;

                for (int i = 0; i < name.length; i++) {

                    if (name[i].equals(name1))
                    {

                        System.out.println("you are verified you may use the lift");
                        x = true;
                        break;// to stop loop checking names

                    }



                }
                if (x = false)
                {
                    System.out.println("wrong");
                }

                j++;



            }

            if(x = false)
            {
                System.out.println("Wrong password entered three times. goodbye.");

            }

}}
import java.util.Scanner;
公共类用户名
{
公共静态void main(字符串[]args)
{   
扫描仪kb=新扫描仪(System.in);
//包含用户名的数组
String[]name={“barry”、“matty”、“olly”、“joey”};//数组中的元素
布尔x;
x=假;
int j=0;
而(j<3)
{
System.out.println(“输入您的姓名”);
字符串名称1=kb.nextLine();
布尔b=真;
for(int i=0;i
在您的
中,如果(x=false)
您首先将
false
分配给
x
,然后将其签入条件。换句话说,您的代码与

x = false;
if (x) {//...
你可能想写

if (x == false) // == is used for comparisons, `=` is used for assigning 
但不要使用这种编码方式。相反,你可以使用


形式
if(x)
等于
if(x==true)
因为

true==true
true

false==true
false

也就是说

X==true
X
(其中
X
只能为true或false)

类似地,
if(!x)
表示
if(x==false)
在您的
if(x=false)
中,您首先将
false
分配给
x
,然后在条件中进行检查。换句话说,您的代码与

x = false;
if (x) {//...
你可能想写

if (x == false) // == is used for comparisons, `=` is used for assigning 
但不要使用这种编码方式。相反,你可以使用


形式
if(x)
等于
if(x==true)
因为

true==true
true

false==true
false

也就是说

X==true
X
(其中
X
只能为true或false)

类似地,
if(!x)
表示
if(x==false)