你如何让某个代码块(在Java中)一直重复直到用户选择退出?

How do you get a certain block of code (in Java) to keep repeating until the user chooses to exit?

例如,在下面的代码中,我如何才能保留 运行“输入用户名”部分,直到用户选择退出?

import java.util.Scanner;

public class EnterUserName {
    public static void main(String[] args) {
        Scanner user1 = new Scanner(System.in);
        System.out.println("Enter your username: ");

        String userName = user1.nextLine();
        System.out.println("Username: " + userName);
    }
}

用户应该如何表示他们想退出?如果他们自己结束进程,你不需要做任何事情,只需将它放在一个 while 循环中,如下所示:

public class EnterUserName {
    public static void main(String[] args) {
        Scanner user1 = new Scanner(System.in);
        String userName;

        while (true) { //loop forever
            System.out.println("Enter your username: ");

            userName = user1.nextLine();
            System.out.println("Username: " + userName);
        }
    }
}

另一种选择是让他们输入一个特殊的关键字,例如“退出”。这可以像这样实现:

public class EnterUserName {
    public static void main(String[] args) {
        Scanner user1 = new Scanner(System.in);
        String userName;

        while (true) { //loop forever
            System.out.println("Enter your username: ");

            userName = user1.nextLine();

            if (userName.equals("exit")) { //if the user entered "exit"
                break; //break out of the loop (terminates the program in this case)
            }

            System.out.println("Username: " + userName);
        }
    }
}

代码新手可能很难。

如果您希望您的程序继续剩余的代码,您可以在循环中使用 breakfor 循环、while 循环、do while 循环),或者您可以使用System.exit(0)立即停止程序。

我假设您不需要验证。如果您需要它,只需在代码 expamle

中将 else 更改为 else if (expression)

我也希望你修正变量的命名方式,你应该像例子一样命名,以示澄清。并且你应该在循环 String userName; 之外声明变量,这是一个很好的做法。这是代码示例:

public class EnterUserName {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String userName;
        while (true) { // Loop forever until correct input or choose "1"
            System.out.println("Enter your username or enter 1 to exit: ");
            userName = input.nextLine();
            if (userName.equals("1")) {
                System.exit(0); // immediately stop the program
//                Or you can use break too. If you use break, "End program" will be printed;
//                break;
            } else { // You can use else if here to have validation of Username
                System.out.println("You have enter Username: " + userName);
                break; // Correct input, break out the loop
            }
        }
        System.out.println("End program");
    }
}