for循环详解

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循环更灵活,且运行速度快)

你可能感兴趣的:(for循环详解)