小白:关于Javascript中for循环和while嵌套的问题
现有JS代码:vars=0,m,n;for(m=1;m<=3;m++){n=1;while(n<=m){s+=n;n+=2;}}问最后n=?为什么是5?for循环在m=3...
现有JS代码:
var s=0,m,n;
for(m=1;m<=3;m++){
n=1;
while(n<=m)
{
s+=n;
n+=2;
}
}
问最后n=?为什么是5?for循环在m=3for循环结束之后,为什么还会执行for大括号中的while?求解答? 展开
var s=0,m,n;
for(m=1;m<=3;m++){
n=1;
while(n<=m)
{
s+=n;
n+=2;
}
}
问最后n=?为什么是5?for循环在m=3for循环结束之后,为什么还会执行for大括号中的while?求解答? 展开
2个回答
展开全部
for(m=1;m<=3;m++)说明m=3时,会执行一次for循环
对做知于while循环,第一次循环,n=1,满足n<=3条件, n加2;第二次循环n=3,满足n<=3,n加2;第纯斗消三次,n=5,不满足条件n<=3,while循环销敬结束。
对做知于while循环,第一次循环,n=1,满足n<=3条件, n加2;第二次循环n=3,满足n<=3,n加2;第纯斗消三次,n=5,不满足条件n<=3,while循环销敬结束。
追问
好像不对,仔细看下代码。for循环中,每次循环n都会初始化为1的。如果FOR在M=3之后终结,n最终结果应该为3。
我实际在机器上调试了一下,n+=2是被执行了4次才有结果为5的。
也就是在M=3,也就是FOR结束后,JS会继续执行一次while循环,这时n=1不会被执行,内存中n保留了上次循环的结果3,然后又执行了一次n=+2,结果才为5。
这是为什么呢……?
追答
我说的是m=3的时候,也就是for循环的最后一次循环时,while循环式如何执行的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询