为了账号安全,请及时绑定邮箱和手机立即绑定

while的死循环是怎么回事?为什么会进入死循环?

while的死循环是怎么回事?为什么会进入死循环?

慕桂英546537 2019-03-05 09:10:31
let status = true;while (status) {}console.log("没有执行到这里");
查看完整描述

8 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

while(true) 当然是死循环了, 没有为什么


查看完整回答
反对 回复 2019-03-26
?
富国沪深

TA贡献1790条经验 获得超9个赞

while传了个true进去,相当于一直在循环,没有尽头


查看完整回答
反对 回复 2019-03-26
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

熊嘚、你这 status 都赋 true 值了

不死循环才怪嘞


查看完整回答
反对 回复 2019-03-26
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

你这个代码执行流程


let status = true;


while (status) {   // 每次执行到这里 为true 执行{}里面代码 直到为false的时候退出  而你的status一    直是true


}

...


查看完整回答
反对 回复 2019-03-26
?
长风秋雁

TA贡献1757条经验 获得超7个赞

let status = true;


while (status) {


}

第一行,status为true啊,大佬。


查看完整回答
反对 回复 2019-03-26
?
湖上湖

TA贡献2003条经验 获得超2个赞

首先,编程语言里几乎所有的程序控制关键字,包括判断、循环之类的,其实全都是if的派生;换句话说,如果语言允许,它们都可以写成if...的形式。

其次,回到问题上来。那么while就可以转化为:


Label:

    If (xxx) {

        dosomething;

        Goto Label;

    }

这种形式。当然这不是javascript,因为它在设计的时候拿掉了goto、而只保留了label,所以你只要能看明白大概其意思就行。那么我们知道if (true)其实是没有判断作用的、一个“常通”的逻辑语句,那么这时,这段其实就变成了:


Label:

    dosomething;

    Goto Label;

没有任何的控制,程序不断在执行操作和跳转到label段落之间往复,也就是:死循环。


查看完整回答
反对 回复 2019-03-26
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

let status = true;


while (status) {


}

你在while内并没有改变status的值,所以它一直是true,就会一直走到这里,形成死循环


查看完整回答
反对 回复 2019-03-26
  • 8 回答
  • 0 关注
  • 2529 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信