js问题,这是怎么回事?能解释一下这个循环?

 我来答
tatooo
2013-08-10 · TA获得超过2119个赞
知道小有建树答主
回答量:2497
采纳率:46%
帮助的人:675万
展开全部
因为for后面只有一行程序

注:第一个for后面只有一个for循环且该循环只有一行代码(就是你例子中的alert)
如果是
for(i=0;i<arrq,length;i++){//如果只有一个alert下一个for循环对于这个for循环算一行代码
for(j=0;j<arr1[i].length;j++){
alert(arr1[i][j]);//只有一行的时候函数能识别出是哪个循环的
alert(11111);//这有两行代码就必须加大括号了
}
}
这样就必须加大括号了
换一种解释方式
程序是自上而下运行的
for(i=0;i<arrq,length;i++)//当执行到这,满足循环条件向下继续执行
for(j=0;j<arr1[i].length;j++)//当执行到这,满足循环条件向下继续执行
alert(arr1[i][j]);//当执行到这,会返回到“j”这个循环继续执行,直到循环结束,然后到“i”这个 循环继续执行;所以不影响程序的执行

再来看两个alert的时候
如果不加括号
for(i=0;i<arrq,length;i++)//当执行到这,满足循环条件向下继续执行
for(j=0;j<arr1[i].length;j++)//当执行到这,满足循环条件向下继续执行
alert(arr1[i][j]);//当执行到这,会返回到“j”这个循环继续执行,直到循环结束,然后到“i”这个 循环继续执行;
alert(11111);//本来这个应该是“j”这个循环的但没有被执行,所以要加括号

也就是说只有在两个以上语句的时候 加括号和不加括号才有区别;
追问
当有两个alert的时候一样能够输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
找寻我们的足迹
2013-08-13 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:21.7万
展开全部
//i代表arr1[0],arr1[1],arr1[2],值是:[0,3)
//j代表如:arr1[0] = [ 3, 1, 11 ];表示arr1[0].length,值为:[0,3)
执行过程是这样的:
i取0, j从0循环到3(不包括3, 以下相同)
i取1, j从0循环到2
i取2 j从0循环到1
所以, 就得到你在注释中所提的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪零星
2013-08-10 · TA获得超过1244个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:269万
展开全部
如果循环里只一个语句 可以不写 {}
for() alert(); 这算是一句。
追问
当有两个alert的时候一样能够输出,这是怎么回事呀,谢谢
追答
不对吧,有两个的时候,只执行一个,第二个是在循环外面执行的吧?为了增加可读性,不论是一句还是很多句都用大括号括起来吧。
for(i=1;i<10;i++){
sum++;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lei690485591
2013-08-10
知道答主
回答量:3
采纳率:0%
帮助的人:4345
展开全部
没有{(大括号)是说它只把第一个for循环后面的一条语句算在for循环里面,也就是只执行第二个for循环,而第二个for循环后面的代码不会算在第一个for循环里面。输出的话是根据二维数组的结构进行输出的。。还有,你知道二维数组么?
追问
二维数组不是怎样写的吧,是有区别的好像
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式