while循环时,println是两次打印

时间:2018-10-24 04:13:47

标签: java

我的代码中存在一个无限的while循环,问题是如果我调用getInput方法(“ input”大小写)或resize方法(“ resize”大小写),则在执行后,它将打印两次命令行,如下所示:< / p>

输入以下命令之一:输入,显示,过滤,调整大小或退出

输入以下命令之一:输入,显示,过滤,调整大小或退出

这是我的循环代码:

while (true) {                                                                                               
    System.out.println("\nEnter one of the following commands: input, display, filter, resize or exit");     
    String command = reader.nextLine();                                                                      

   switch (command) {                                                                                        
       case "input":                                                                                         
            data = getInput(data);                                                                           
            break;                                                                                           
       case "display":                                                                                       
            displayContents(data);                                                                           
            break;                                                                                           
        case "filter":                                                                                       
            data = removeEvens(data);                                                                        
            break;                                                                                           
        case "resize":                                                                                       
            data = resize(data);                                                                             
            break;                                                                                           
        case "exit":                                                                                         
            System.exit(0);                                                                                  
    }                            

1 个答案:

答案 0 :(得分:-1)

开关内的中断从开关中断。然后无限循环继续。

如果您想中断循环,可以使用标签。

INPUT_LOOP:
       while (true) {
           System.out.println("\nEnter one of the following commands: input, display, filter, resize or exit");
           String command = reader.nextLine();

           switch (command) {
           case "input":
               data = getInput(data);
               break INPUT_LOOP;
           case "display":
               displayContents(data);
               break INPUT_LOOP;
           case "filter":
               data = removeEvens(data);
               break INPUT_LOOP;
           case "resize":
               data = resize(data);
               break INPUT_LOOP;
           case "exit":
               System.exit(0);
           }
       }