Java 如何将for循环添加到if语句中?

Java 如何将for循环添加到if语句中?,java,if-statement,for-loop,Java,If Statement,For Loop,在我下面的代码中,我不确定将其放入什么顺序才能正常工作 我首先希望它打印出来,让用户选择一个选项,然后如果他们选择1,它会询问他们的名字,并用循环等进行验证 当我输入一个名字时,它开始循环输入你的名字的问题,我不知道如何修复它 我是否需要向程序中添加更多语句?如果需要,我是否仍然可以使用if语句供用户选择选项 import java.util.Scanner; public class username { public static void main(String[] args)

在我下面的代码中,我不确定将其放入什么顺序才能正常工作

我首先希望它打印出来,让用户选择一个选项,然后如果他们选择1,它会询问他们的名字,并用循环等进行验证

当我输入一个名字时,它开始循环输入你的名字的问题,我不知道如何修复它

我是否需要向程序中添加更多语句?如果需要,我是否仍然可以使用if语句供用户选择选项

import java.util.Scanner;

public class username {

    public static void main(String[] args) {

        {
            int UseLift;
            int AuditReport;
            int ExitLift;
            int a;

            UseLift = 1;
            AuditReport = 2;
            ExitLift = 3;
        }

        System.out.println("choose an option");
        System.out.println("Uselift(1)");
        System.out.println("see audit report(2)");
        System.out.println("Exit Lift(3)");

        Scanner d = new Scanner(System.in);
        int a = d.nextInt();

        Scanner kb = new Scanner(System.in);
        // array containing usernames 
        String[] name = {"barry", "matty", "olly", "joey"}; // elements in array

        if (a == 1) {
            System.out.println(" Enter your name ");
        }

        String name1 = kb.nextLine();
        boolean b = true;
        int j = 0;// counter will start at 0
        outerloop:

        while (j < 3) {
            System.out.println("Enter your name");
        }

        for (int i = 0; i < name.length; i++) {
            if (name[i].equals(name1)) {
                System.out.println("you are verified you may use the lift, calling lift ");
            }
            break;// to stop loop checking names
        }
        System.out.println("Username Invalid");
        j++;

        if (a == 2) {
            System.out.println("");
        }

        if (a == 3) {
            System.out.println(" Please Exit Lift ");
        }
    }
}
您的while循环如下:

while (j < 3) {
    System.out.println("Enter your name");
}
将永远循环,因为j不是递增的j++。我相信你在某个时候错配了你的花括号。

给你:

public static void main(String... args) {

    String[] verifiedNames = { "barry", "matty", "olly", "joey" };
    System.out.println("choose an option");
    System.out.println("Uselift(1)");
    System.out.println("see audit report(2)");
    System.out.println("Exit Lift(3)");

    Scanner scanner = new Scanner(System.in);
    int choice = scanner.nextInt();

    switch (choice) {
    case 1:
        scanner.nextLine(); // get '\n' symbol from previous input
        int nameAttemptsLeft = 3;
        while (nameAttemptsLeft-- > 0) {
            System.out.println(" Enter your name ");
            String name = scanner.nextLine();

            if (Arrays.asList(verifiedNames).contains(name)) {
                System.out.println("dear " + name + " you are verified " +
                        "you may use the lift, calling lift ");
                break; // break out of loop
            }
        }
        if (nameAttemptsLeft < 0) {
            System.out.println("Username Invalid");
        }
        break;

    case 2:
        System.out.println("option 2");
        break;
    case 3:
        System.out.println(" Please Exit Lift ");
        break;
    }

    scanner.close();

}

你是否计划在生活中进一步使用java/进行编程?如果是这样,我建议花2小时阅读java语法概述,只需阅读oracle的官方教程即可。不,我没有很大帮助@kiruwkawell,如果你没有,我想解释如何更改代码是没有意义的,编写工作快照会更快。这会有帮助吗?@user3151959:kiruwka有点唐突,但你应该注意要点,即开发人员最有价值的技能是进行研究和找到解决方案的能力。如果您不理解Java语法,那么首先要做的就是研究它。如果没有这项技能以及何时应用这项技能的知识,即反省地知道自己不知道的东西,软件开发将非常困难。@user3151959我为您提供了下面的工作示例,它停止了循环,但现在它不会打印出条目是否有效@alyawn@user3151959欢迎我知道有人问questin编程时对学习如何编写代码一点也不感兴趣,这让人觉得很冒犯,但我想这一切都很正常。我仍然鼓励您只需浏览代码,看看您是否理解足够的逻辑,以便将来修改它。顺便说一句,正如您所看到的,不需要循环。一个问题很抱歉,您删除了用户名处尝试的密码,用户可以尝试3次@kiruwka@user3151959我用计数器更新了代码