java中如何动态停止while循环?

有个jms程序,其中有个while循环

 do {
            if(stopLoop){
                break;
            }
        } while(true);

其中的stopLoop是静态变量,初始值为false

 public static boolean stopLoop = false;

现在想当我接收到指定的消息时,把stopLoop改为true跳出这个while,但是怎么都不起作用,请问是什么问题?应该怎么改进?

谢谢

非常奇怪, 加上这句System.out.println(stopLoop);就能够正常退出循环,但是一注释掉又不起作用了,这是什么原因?

 do {
    //System.out.println(stopLoop);
        } while(!stopLoop);

你debug试一下看看,stoploop是否已经改为true

因为while里是true

你debug试一下看看,stoploop是否已经改为true
--同意

想要验证你的结构,直接
do {
if(true){
break;
}
} while(true);

            看看能不能跳出就知道是谁的问题了

            重点关注你的stoploop

按你现在的表述,下面的代码也可以实现,省几个字符

while(!stoploop){};

可以通过变量判断,也可以通过break;