2 sinat 31621401 sinat_31621401 于 2016.04.22 16:47 提问

这段代码没看明大神们来帮看一下

这段代码没看明大神们来帮忙看下,尤其是if(flag)这块,还有while(true)为什么是死循环呢?小弟自学求大神说的详细一点。![图片说明](http://img.ask.csdn.net/upload/201604/22/1461314855_511438.png)图片说明

7个回答

jiang1245764446
jiang1245764446   2016.04.22 17:49
已采纳

首先flag是实例变量,程序在生成你的测试类的实例时,会为实例变量赋初始值,boolean类型的默认值为false,在上面的程序中flag的值为false,程序走else分支,然后遇到while语句,while语句的格式为while(boolean){statements},意思是先判断boolean的值,如果为true,执行statements,然后再判断boolean,直至boolean为false,否则一直执行statements,上面的代码就满足该判断,将一直执行,直至报错。

javaiswhat
javaiswhat   2016.04.22 16:56

while(true)如果里面没有条件跳出来,那就是死循环,

qq_21413973
qq_21413973   2016.04.22 16:58

因为while里面的条件一直都是真,没有改变所以是死循环

chenhchen1994
chenhchen1994   2016.04.22 17:14

private boolean flag // 第一个布尔类型 值: true 或者为 false 没有设定 初始值为false
if(flag) / /当flag 为false 进入while
while(true) // 则 不满足while条件 不进入 while

至于你说的死循环 我看不懂 都不满足 while 循环的条件 怎么会死循环呢? 你运行过这段代码吗?

chenhchen1994
chenhchen1994 回复yaodexi93: 我看不懂~ 你打代码放到Eclipse 中运行一下看看 ~ 有些写的我感觉都有问题。
一年多之前 回复
sinat_31621401
sinat_31621401 也就是说flag就是有点想string name中的name呗?
一年多之前 回复
sinat_31621401
sinat_31621401 我个人理解为循环条件1==1,结果不是为真么,我也不知道对不对书上应该不会写错吧
一年多之前 回复
Goskalrie
Goskalrie   2016.04.22 17:44

首先flag是实例变量,程序在生成你的测试类的实例时,会为实例变量赋初始值,boolean类型的默认值为false,在上面的程序中flag的值为false,程序走else分支,然后遇到while语句,while语句的格式为while(boolean){statements},意思是先判断boolean的值,如果为true,执行statements,然后再判断boolean,直至boolean为false,否则一直执行statements,上面的代码就满足该判断,将一直执行,直至报错。

jiang1245764446
jiang1245764446   2016.04.22 17:49

首先flag是实例变量,程序在生成你的测试类的实例时,会为实例变量赋初始值,boolean类型的默认值为false,在上面的程序中flag的值为false,程序走else分支,然后遇到while语句,while语句的格式为while(boolean){statements},意思是先判断boolean的值,如果为true,执行statements,然后再判断boolean,直至boolean为false,否则一直执行statements,上面的代码就满足该判断,将一直执行,直至报错。

github_34226737
github_34226737   2016.04.22 20:31

这个是验证的操作系统书上的线程同步问题吧? 不是wait和signal原语?

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