如何创建无限循环并使用命令退出?

时间:2013-10-01 19:45:26

标签: java loops

我想知道我是否可以这样做,所以循环可以以键入end或-1之类的命令结束。我现在拥有的是

while ( gradeCounter <= 10 ) // loop 10 times

我想知道如何让它无限循环直到我结束它。

3 个答案:

答案 0 :(得分:2)

只需创建一个while循环和一个条件来打破它

while(true){
      String inputString = //Get user input here       

      if(inputString.equals("Your Termination Text"))
           break;

    }

如果你想知道如何获得控制台输入,这是一种方法 Java: How to get input from System.console()

根据以下评论进行编辑

double grades = 0;
int entries = 0;
while(true){
      String inputString = //Get user input here       

      if(inputString.equals("Your Termination Text"))
           break;
      else{
        grades += Double.parseDouble(inputString);
        entries++;
      }
 }
 double averageGrade = grades / entries;

请注意,这不会考虑非数字的文字,也不会解决您的终止文字。从这个问题来看,它听起来像是一个低水平的CIS课程,我不认为这将成为一个问题。但是,如果你需要学习如何尝试捕获和更多的输入验证。

答案 1 :(得分:1)

While(true) {}创建了一个无限循环。循环中的break命令会突破它。你必须检测循环内发生的任何事件,以确定你是否应该破坏。

我不知道你在更大规模上做了什么,但使用不会无限循环并增加处理能力的线程可能是个更好的主意。

答案 2 :(得分:1)

是的,有可能。只需确保,有一个不同的线程可以处理某种输入......

public class MyBreakableInfiniteLoop

    public static void main(String[] args) {

        MyRunnable r = new MyRunnable();
        new Thread(r).start();

        System.out.println("Press Enter to stop thread");
        new Scanner(System.in).readLine();
        r.stop = true;

    }

    public static class MyRunnable extends Runnable {
       public volatile boolean stop = false;
       public void run() { 
           while(!stop) { 
              //do nothing, preferably in a meaningful way 
           } 
       }
    }


}

(aLso,我没有将计数kill -9视为“打破无限循环的输入”......)