2 wesker0918 wesker0918 于 2016.01.14 16:48 提问

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);

6个回答

CSDNXIAOD
CSDNXIAOD   2016.01.14 16:51

Java中while循环用法
java学习二十四 java循环语句do while
java学习之while循环
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

zhihan_tu
zhihan_tu   2016.01.14 17:03

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

enpterexpress
enpterexpress   2016.01.14 17:13

因为while里是true

noteless
noteless   2016.01.14 17:20

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

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

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

            重点关注你的stoploop
save4me
save4me   Ds   Rxr 2016.01.14 17:31

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

while(!stoploop){};
Mr_dsw
Mr_dsw   Ds   Rxr 2016.01.14 17:35

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!