如何为if语句添加for循环?

时间:2014-03-31 18:03:27

标签: java if-statement for-loop

在下面的代码中,我不确定将其用于正常工作的顺序。

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

2 个答案:

答案 0 :(得分:2)

你的while循环:

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

将永远循环,因为j没有递增(j ++)。我相信你在某些时候错误地匹配了你的花括号。

答案 1 :(得分:2)

你去:

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();

}