【问题标题】:Order of while loops in JavaJava中while循环的顺序
【发布时间】:2021-01-03 08:47:15
【问题描述】:

我写了一个类似这样的程序

System.out.println ("What would you like to do?");
String task = sc.nextLine();

然后根据输入,每个输入都有一堆while循环

while (task.equals("example")) {

//do something

System.out.println ("What would you like to do now?");
task = sc.nextLine();
}

while (task.equals("example 2")) {

//do something

System.out.println ("What would you like to do now?");
task = sc.nextLine();
}

等等。在每个循环结束时,用户可以输入他们接下来要执行的操作,并根据他们所说的内容执行相应的 while 循环。

但我无法执行高于另一个循环的 while 循环。因此,如果我在“示例”循环中,我可以在之后执行“示例 2”循环,因为它在它之下。但是如果我在“示例 2”循环中,我无法执行它上面的“示例”循环。有没有办法解决这个问题?

【问题讨论】:

    标签: java input while-loop


    【解决方案1】:

    是的,你可以绕过它的方法是将它全部打包在一个循环中,然后一个简单的 if 语句就可以解决问题:)

    String task;
    while(true) {                  //or !task.equals("exit")
        System.out.println("What would you like to do now?");
        task = sc.nextLine();
        if(task.equals("example") {
            //do something
        }else if(task.equals("example 2") {
            //do something
        }
        ...
        }else { break; }          // You can also use this to break out of your loop
    }
    

    【讨论】:

      【解决方案2】:

      哦,循环意味着循环,你可以在其中做很多事情。所以你只需一个循环就可以做到:

          public static void main(String[] args) {
              String task;
              Scanner sc = new Scanner(System.in);
              do {
                  System.out.println("What would you like to do?");
                  task = sc.nextLine();
                  switch (task) {
                      case "example":
                          System.out.println("example 1");
                          break;
                      case "example 2":
                          System.out.println("example 2");
                          break;
                      default:
                          break;
                  }
              } while (!"exit".equals(task));
              System.out.println("task exit");
          }
      

      【讨论】:

        猜你喜欢
        • 2010-11-09
        • 2014-03-29
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        • 2017-12-04
        • 2018-05-18
        • 2018-07-07
        • 2011-01-20
        相关资源
        最近更新 更多