条件为假时立即中断循环

时间:2017-11-22 10:49:41

标签: java while-loop break

是否有可能在条件变为假之后立即中断while循环?

while(true){
//Backgroundtask is handling appIsRunning boolean
            while (appIsRunning) {
                Roboter.movement1(); //while Roboter.movement1 is running appIsRunning changes to false

                Roboter.movement2();
            }
            while (!appIsRunning) {
            //wait for hardbutton/backgroundtask to set appIsRunning true
            }

    }   

我不想等到第一个动作完成后,while应该立即断开并关闭Roboter.class。 如果appIsRunning为真,我不想在Roboter.class里面检查......

3 个答案:

答案 0 :(得分:0)

打破;条件失败的地方!简单!

答案 1 :(得分:0)

最简洁的方法,无需重新思考您的"架构" (我建议,但取决于你想要实现的目标:

while(true){
    while (appIsRunning) {
        if(!Roboter.movement1()) { //Hardbutton is pressed to stop application / appIsRunning is false
            break;
        }
        Roboter.movement2();
    }
    while (!appIsRunning) {
        //wait for hardbutton/backgroundtask to set appIsRunning true
    }
}

从" movement1()"返回false当你想离开时......

答案 2 :(得分:0)

如果你想完全停止Roboter.movement1()执行,你应该使用另一个线程并在那里执行:

Thread mover = new Thread() {
        @Override
        public void run() {
            Roboter.movement1();
        }
    }
mover.start();

当您需要停止时,请使用mover.stop();

小心:使用stop()可能导致程序错误行为 How do you kill a thread in Java?