繁体   English   中英

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

[英]How to add for loops to if statements?

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

我首先希望它打印出来供用户选择它所做的选项,然后如果他们选择 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();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM