了解for语句结构及使用
for语句是循环控制语句,它将计数器的初始化,检测,与更新三个关键操作为语法的一部分,分别对应下例语句1,语句2,语句3。
for(语句1;语句2;语句3){
循环内容
}
- 语句1在循环开始前执行
- 语句2定义循环条件,为真(true)继续执行,为假(false),即不符合则停止
- 语句3在执行每次循环后执行
注:语句1只在开始循环前执行一次
用法为:
for(i = 1;i <= 6;i++){
document.write(i);
}
输出结果为123456
即:第一次i为1时输出1,第二次循环在i++执行后,i为2,输出2,以此类推。
2.for的双重嵌套
for(语句1;语句2;语句3){
for(语句1;语句2;语句3){
内容
}
内容
}
例题:
使用for双重嵌套输出一个五角星方阵
须输出内容如下
使用代码:
for(var i = 1;i <= 5 ;i++){
for(var n = 1;n <= 5;n++){
document.write("★"+" "+" ");
}
//打印五颗五角星与两个空格
document.write("<br />");
//进行换行
}
当外部的for循环一次,此时i为2 ,内部for就已经循环过一遍了,n已经大于5,才跳出了循环,而当外部进行第二次循环时,内部的初始化语句又重新将n设置为1,并再一次的循环打印五次。
i++等自增自减基本仅在算数表达式中有先增/减与后增/减的区别,在其它地方效果最终都是加1。
例题2:打印九九乘法表
for(a = 1;a <=9;a++){
for(b = a;b <=9;b++){
var ast = a * b;
document.write(a + "x" + b + "=" + ast + " ");
}
document.write("<br />");
}
结果:
如果需要结果反过来,看的正常一些,只需要更改内部for中a的位置
for(a = 1;a <=9;a++){
for(b = 1;b <=a;b++){
var ast = a * b;
document.write(a + "x" + b + "=" + ast + " ");
}
//ast其实可以直接写a*b,就当是我脑袋抽了
document.write("<br />");
}
结果:
内部for中的变量a将外部for和内部for紧紧的贴合在了一起,本人刚接触时就卡在了这里,我们需要好好想想外部的a发生变化后,内部会有什么改变,外部的每次循环改变了内部的某些因素,不同于上面的五角星方阵中外部for仅用来换行,这里的外部for作用要更大。
总结:
- 部for执行一次时,内部已经将一轮完成了。也就是说,执行内部内容时,和外部的for毫无关联,只有内部的内容执行完毕,才会跳出继续执行外部。且无论嵌套多少重for语句都一样。
- 此类外部用来输出行,内部用来输出行内的每个元素。
- 如果遇到多个for多重嵌套,可以将其划分为数个步骤,将大的问题拆分为小的问题,耐心分析,循序渐进的读懂或写出。