[想试试看JavaScript ] for回圈

回圈

for 回圈

for 回圈,很适合用来处理数值会依照次数,有「递增」或「递减」的变化
范例如下

var i;
for(i=0;i<=10;i++){
    console.log(n);
}

会印出

// 0
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10

语法如下

for(初始值;条件;结束时变动){ //做某事 }
for(var i=0;i<=10;i++){ // 做某事 }

for 後面的小括弧要输入三种资料,分别是初始值、条件、结束时变动
初始值:用来初始化for 回圈中的计数器
条件:指的是当满足这个条件(结果为true),就会进入大括号执行里面的程序码
结束时变动:就是每次执行完大括号里面的程序码就会执行这里面的程序码

要一次了解要输入的三种资料有点困难,可以先从条件来了解
假设我要写一个1到10的回圈,使用 while 可以这样写

//while(判断){
//    要执行程序码
//}
var n=1;
while(n<=10){
    console.log(n);
    n++;
}

如果使用 for 回圈改写

var n=1;
for(;n<=10;){
    console.log(n);
    n++;
}

我将 while 改写成 for
小括弧我将 (n<=10) 改写成 (;n<=10;)
条件前面的初始值和结束时变动先空着(不过前後要记得打分号),一样可以印出 1 到 10
我们可以知道for回圈中的条件就等於while回圈的判断,只要满足条件,就会进入大括号执行里面的的程序码。
我们可以再进一步的再改一下

for(var n=1;n<=10;n++){
    console.log(n);    
}

初始值放进 var n=1
结束时变动放进 n++
这样就跟常见的 for 回圈语法是一样的
平常还是建议将初始值、结束时变动写在小括弧里面,比较方便阅读。
for 回圈和 while 回圈好像都是在做一样的事情。不过,不同的工程师在不同的状况,会使用不同的回圈语法,所以为了增加我们阅读别人程序码的速度,所以我们还是要尽量熟悉这两种语法。

break 与 continue

学了 while回圈与 for回圈
假设我们想跳过其中几次回圈,或者提早离开回圈,有什麽方式呢?

我们可以使用 breakcontinue

  • break 会直接跳离回圈
  • continue 会跳过一回圈,继续执行下一次

我想印出1到10,不过如果遇到 5 的话就不印出来离开回圈,不再继续
可以使用 break 搭配if这样写

for(var i=1;i<=10;i++){
    if(i==5){ // 如果 i 等於 5,就跳出
       break;
    }
    console.log(i);
}

就会印出1、2、3、4
那麽如果是,我想印出1到10,不过如果遇到 5 的话就不印出来,但我想继续印出接下来的数字
那我就可以使用 continue

for(var i=1;i<=10;i++){
    if(i==5){ // 如果 i 等於 5,就从这里跳过一次回圈,继续执行下一轮回圈
        continue;
    }
    console.log(i);
}

印出1、2、3、4、6、7、8、9、10

再来一个练习
假如,我想印出1到10之间的偶数
我可以这样写

for(var i=1;i<=10;i++){
    if(i%2 == 1){ // 如果 i 除以 2 会余 1,就是奇数,那麽就跳过这一轮
        continue;
    }
    // 符合条件的都是可以被 2 整除,也就是偶数。
    console.log(i);
}

虽然,看到这里可能不太理解为什麽会需要做这样的筛选,不过後面稍微比较复杂的程序,就可以使用这些技巧
例如,班上有10位同学,座号1到10,准备要打篮球打算分成两个队伍,奇数座号同学加入蓝队,偶数座号同学加入红队。
当我们需要筛选奇数或偶数,就可以用这种方式。


<<:  [Day09] JavaScript - 流程判断

>>:  Day9 盒模型

Day30_哇呜~最後一天的铁人实了~2021/10/13

回故一下这三十天的旅程~ Day01_老太太的前言~落落长~XD" Day02_话说从头~...

Day 12 - Key Sequence Detection (KONAMI CODE)

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

# 将影片转换成图片 - Day 11

将影片转换成图片 - Day 11 今天要完成的工作是将搜集到的影片或是照片转换成 YOLOV3 可...

【Day 21】Algorithm - Find Cycle in Directed Graph

这题真的需要花一点功夫,题目并不难懂,但是不能用直观的方式去写,可以上网搜寻关键字「find cyc...

[Day 28] 来做一个人脸互动的程序吧!

在我完成人脸关键点与人脸对齐的学习後,觉得眼睛有点累想要休息 -- 这时一个应用就出来了! 我们每...