[Day09] while、for 回圈

tags: 铁人赛

如果要重复做一件事情,就要用到回圈这个语法。
还记得当初刚接触到 0.1+0.2 不等於 0.3 时觉得疑惑,用 console.log 把 0.1*1、0.1*2、...、0.1*10 都印出来看结果,於是写了下面这段,

後来读到 JavaScript 回圈才知道该如何改写。

while 回圈

我用 while 来理解回圈的执行流程
假设题目是:要各别印出数字 1~10,
那我第一步可以先 var 一个 a 变数等於 1,第二,要印到 10 所以条件设 <=10,然後结束时 a++(a = a + 1),再回到执行条件重复执行,直到执行条件不 <10 停止。

var a = 1; // 这是初始值
while ( a <= 10 ) { // 这是执行条件
  console.log(a); // 印出结果
  a++; // 结束时变动
}

while 照顺序排下来,印出想要的结果

for 回圈

然後再把刚刚的题目改成 for 回圈的写法,for 回圈一定要有三个条件,不写可以留空,但一定要加分号,不然会报错。

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

// 在外面宣告括号里要留分号,但一般来说不会有人这样写
var a = 1;
for (;a <= 10; a++) {
  console.log(a);
}

看完这两个写法可以来改写我原本的测试啦~
题目:印出 0.1*1、0.1*2、...、0.1*10 的结果
分别用 while、for 写法

// while 回圈写法
var a = 1;
while (a<=10) {
  console.log(a*.1)
  a++;
}
// for 回圈写法
for (var a = 1; a<=10; a++) {
  console.log(a*.1);
}
// 结果相同
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8
0.9
1

何时该选择用 for 或 while

明确知道回圈执行次数使用 for,不确定时使用 while。
for 包含初始值、条件、执行後的改变,可以清楚的知道执行次数,而 while 只包含条件。

break 与 continue 的用途

假设今天要取 1~10 的偶数,那我们就可以利用 continue 的特性,来避开基数,练习如下:

for (var a = 1; a<=10; a++) {
  if ( a % 2 !== 0) {
    continue;
  }
  console.log(a);
}

而 break 目前只测试到停止,还在找适当的范例,晚点再更新补上。

跳出无限回圈的办法

在写回圈的时候,最怕遇到跳不出回圈的状况,无限回圈一直跑下去造成当机,所以条件设定的逻辑很重要,若不幸遇到停不下来的状况,在浏览器的 devtool 下可以按重新整理,如果是 node 环境可以按 control+C 来停止。


<<:  Firebase推播(下) - 图片推播

>>:  [Day10]关於创世区块block#0

7.移转 Aras PLM大小事-汇入Aras如何有效执行

关於汇入工具这档事情,我自己是重新写了一支汇入程序 主要是原厂提供的程序并不好用 1.Log记录档不...

Day 08:原则、设计模式、架构

前言 接下来要介绍的东西并不是学什麽工具, 而是怎麽把我们已经会的程序语言写得更有系统, 来达到高效...

D25: 工程师太师了: 第13话

工程师太师了: 第13话 杂记: 近期在整理最近几年做了些什麽, 发现长长短短也做了不少side p...

How to split a (HUGE) pcap file into a set of smaller ones ? keyword: tcpdump

tcpdump Introduction wiki: tcpdump 是一个执行在命令列下的嗅探工具...

存取令牌(Access Token)

.“断言”( Assertion)是 SAML(安全断言标记语言)中使用的术语,相当於 OIDC(O...