如何用Java重启/循环程序?

时间:2016-06-21 22:23:16

标签: java

我有一个简单的Java代码,需要在给定某个输入的情况下将程序循环回到开头。我无法发布整个代码,因为它是用于分配的,但基本上我在末尾有一个用户输入,计算和打印结果部分,给出了之前输入的所有结果,现在我需要重新启动它。我尝试过使用do-while循环,如下所示:

 do
  {
  System.out.println("Enter Another Student? Y or N");
  sLoop = console.nextLine(); 
  }while (sLoop.equals("Y") || sLoop.equals("y"));

但是只显示文本并结束程序而不给用户输入值的选项。但是,我知道这是错误的,因为它没有任何迹象表明它应该循环回到顶部。任何帮助表示赞赏。我会在帖子开头发布,所以你知道它看起来如何,但我无法发布整个内容。

import java.util.*;

public class ---- {

   public static void main (String[] args) {

   Scanner console = new Scanner (System.in);

在此之后我有用户输入,一切正常,但我对如何从开始到结束循环程序感到困惑。我想我可能不得不把我的整个代码(在Scanner控制台下)放在do中,然后放在最后放置的时候,但是我不会想到' while'会工作。我希望这是有道理的。谢谢!

此外,代码单独工作。但是当我开始输入我的数据时,它会停止工作,并且不允许用户输入。

2 个答案:

答案 0 :(得分:0)

如果你想像10次那样循环幕帘时间:

int x = 0;
while(x < 10){
    //Code here
    x++;
}

如果你需要一直循环它:

boolean running = false;

那是全局布尔值

//When the program starts(Probably in constructor or main method)
running = true;

和循环:

while(running){
    //Code you want to loop here
}

答案 1 :(得分:0)

您的第一个代码示例几乎就是您所需要的。看看这个运行的例子:

import java.util.Scanner;

public class LoopStudents {

    public static void main(String[] args) {

        Scanner console = new Scanner(System.in);

        String sLoop;
        do {
            // do something with the student
            System.out.println("Enter name of student:");
            String name = console.nextLine();
            System.out.println("Name = " + name);

            System.out.println("Enter Another Student? Y or N");
            sLoop = console.nextLine();
        } while (sLoop.equals("Y") || sLoop.equals("y"));
    }
}