为什么我的JavaScript Do-While循环输出结果与预期不符?
问题原因说明
- 第一个while循环执行结束后,变量
g的值已经是6了:第一个while循环的逻辑是只要g<=5就执行,当g=5时完成打印后执行g++,此时g变为6,判断6<=5不成立,循环终止,所以后续用到g的时候初始值已经是6,不是初始定义的1。 - do-while循环的特性是先执行循环体代码,再判断循环条件:所以哪怕此时g已经是6,也会先执行
console.log("The other number is " + g)打印出6,再执行g++变为7,最后判断7<=5不成立,循环结束,所以只会输出6。
解决方法
如果要得到你预期的1到5的输出,只需要在第二个do-while循环执行前,把g重置为初始值1即可,修改后的代码示例:
// 重置g的值 g = 1; do{ console.log("The other number is " + g) g++; } while(g<=5)
内容的提问来源于stack exchange,提问作者Cienna
相关产品推荐
相关产品推荐

