如何中断无限循环

2022-09-01 19:38:31

虽然我知道问这个问题有点傻,但我仍然想进一步询问它的技术角度。

无限循环的简单示例:

public class LoopInfinite {
    public static void main(String[] args) {
        for (;;) {
            System.out.println("Stack Overflow");
        }
    }
}

如何从此类外部中断(停止)此无限循环(例如,借助继承)?


答案 1

即使写这个,我也觉得很脏,但是...

从不同的线程中,可以使用实现进行调用,该实现会在您调用 时引发 。System.setOut()PrintStreamRuntimeExceptionprintln()


答案 2

我们可以使用变量来实现它,我们将更改ouside并停止循环。volatileThread

   for(;!cancelled;) /*or while(!cancelled)*/{
       System.out.println("Stackoverflow");
   }

这是编写无限循环的更好方法。

public class LoopInfinite{
      private static volatile boolean cancelled=false;
      public static void main(String[] args){
             for(;!cancelled;) { //or while(!cancelled)
                    System.out.println("Stackoverflow");
             }
      }
      public void cancel(){
        cancelled=true;
      }
}

推荐