for循环语法
所谓的for循环,是和while,do while循环不太一样的一种循环结构,道理是和其他两种一样的,都是循环执行代码的。
语法:
for(定义初始变量;循环变量(循环条件);变量变化){
循环语句……
}
如for (var i = 0; i <= 100; i++) { }
- 变量初始化,在进入循环前执行一次,所以所有初始定义都可写在 for 语句中的第一个位置
- 循环条件,是每次进入循环之前都会执行并且判断的。 如果没有这个条件语句,默认可以直接进入语句块,无限循环
- 第三个部分是每次循环完成语句块后都会执行的内容
【总】条件部分不能使用逗号分隔多个条件,只能使用逻辑与,逻辑或,其他两个部分都可以使用逗号分隔多个语句内容
for循环的简化
利用for循环会显得代码比较整齐,且清晰明了,当然也可以根据它的语法来让代码更加简洁。
[例]求 1-100 的累加
//定义和为sum,并赋初值为1
var sum = 0;
//执行的顺序是定义一个初值为0的变量i,判断i是否咸鱼等于100这个条件,符合才能进入循环语句。接着执行循环语句,最后执行i++;第二次继续判断i是否符合条件,符合则进入,执行循环语句,执行i++……以此类推
for (var i = 1; i <= 100; i++) {
sum += i;
}
//在控制台打印sum的值,即1-100的累加
console.log(sum);
以上代码可简写为如下代码:
for (var i = 1, sum = 0; i <= 100; sum += i, i++);
- for语句的循环语句如果只有一句,就可以省去花括号,循环语句直接跟在后面写在同一行。
- sum+=i写在for语句第三部分时候,要写在i++前面,且for语句后面要加分号或者空的花括号。
for循环与while循环
[例]依次输出0-9的和(不包括5)
//while循环输出不包括5的0-9的和
/* var i=0;
var sum=0;
while(i<10){
i++;
//如果i的值是5,跳出本次循环
if(i===5) continue;
sum+=i;
//i++写在这里就会是死循环
i++;
}
console.log(sum);//在i=5时跳出本次循环,结果是1+2+3+4+6+7+8+9+10 */
- 若i++是写在下面的位置(注释i++的位置)。当i为5,由于continue是跳出本次循环,继续进行下次循环,所以就执行不到i++这一步了,所以i的值就一直是5,造成死循环。解决方法是把i++写在if语句之前。
//for循环输出不包括5的0-9的和
for (var i = 0; i < 10; i++) {
//如果i的值是5,跳出本次循环
if (i === 5) {
continue;
}
console.log(sum);//在i=5时跳出本次循环,结果是1+2+3+4+6+7+8+9+10 */
}
- for循环在这个例子上就不存在死循环的现象,因为只要进入了for循环,即使跳出了本次循环,i++这个步骤都会执行。当i为5,跳出本次循环后,i仍然会加1,此时i会变成6,就不会出现i一直为5的现象。
while循环和for循环,都有各自的应用场景
如果是未知循环次数的( 判断进入循环的条件与循环变量无关)循环程序,往往使用while循环来执行(while 循环比 for循环更灵活,且运行速度快)