do while
老师举的例子中var j=1; do{if(j%2==0){console.log(j);}j++;}while(j<=10);为什么12没有被打印出来 不是10完事会再判断下12吗?
0
收起
正在回答
2回答
1、下列这种情况,因为do{……}while()语句是倒装的,第一次传入j=1,在do{……}语句中进行判断是否为偶数,如果是则打印,然后在while语句中进行判断,j是小于10的,然后进行第二次循环,第二次传入j=2,在do{……}语句中进行判断是否为偶数,如果是则打印,然后在while语句中进行判断,是小于10的,进行第三次循环……依次类推,当j=10的时候,执行在do{……}语句中进行判断是否为偶数,如果是则打印,然后在while语句中进行判断,j=10,满足最大的限定条件j<=10中的等于10,所以停止循环,也就是不会再继续传入j的值了,因此不会打印出12。
关于同学说的j=18会打印出来的问题,因为do{……}while()语句是倒装的,因为先声明的j=18,所以会直接传入j=18,先在do{……}语句中进行判断是否为偶数,如果是则打印,然后才在while语句中进行判断,这个时候,已经执行完了do{……}语句。并将结果打印出来了,所以,这个时候,while语句中进行判断的结果不会影响到do{……}语句中打印的结果。
希望可以帮到你!
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星