如果用户输入错误的单词,如何再次循环

时间:2017-10-26 21:22:43

标签: java if-statement while-loop

基本上,我希望我的代码要做的是,如果用户输入除“sum,quit,max,min”之外的任何内容,我希望程序循环返回并再次询问用户选项。我尝试使用while循环,但我无法在其中添加多个String对象。我坚持要做什么。 (另外,我使用if语句而不是while语句,因此它不会不断重复并被卡住。)

编辑:谢谢你的帮助!我使用了一段时间(真实),休息语句,并在最后继续,它似乎工作!

public static void main (String [] args){
        System.out.println("Enter the option sum, max, min:");
        Scanner input = new Scanner (System.in);
        user = input.nextLine();
        double [] y = theArray();


        if (user.equals("sum")){
            //do something

        }
        else if (user.equals("max")){
            //do something 
        }
        else if (user.equals("min")){
            //do something
        }
        else if (user.equals("Quit")){
            //do something
        }


    }
} 

2 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所说,当条件满足时,使用while无限循环和break。如果不满足条件,则循环进行下一次迭代。请注意应该循环的内容以及原因。

System.out.println("Enter the option sum, max, min:");
Scanner scanner = new Scanner(System.in);
String option;

while (scanner.hasNextLine()) {
    System.out.println("Enter the option sum, max, min:");
    option = scanner.nextLine();
    if ("sum".equals(option)) {
        System.out.println("Sum entered, loop ended");
        // do something
        break;
    } else if ("max".equals(option)) { // the same goes for min, max, quit }
}

答案 1 :(得分:0)

我建议使用recursion

public static void main (String [] args){

        Scanner input = new Scanner (System.in);

        promptUser(input);

        System.out.println("done");

    }
    public static void promptUser(Scanner input) {
        System.out.println("Enter the option sum, max, min:");
        String user = input.nextLine();
        double [] y = theArray();


        if (user.equals("sum")){
            //do something
        }
        else if (user.equals("max")){
            //do something
        }
        else if (user.equals("min")){
            //do something
        }
        else if (user.equals("Quit")){
            //do something
        }else {
            //if wrong input is entered, try again
            promptUser(input);
        }
    }