马黑黑 发表于 2022-2-15 18:05

JS:while循环语句简介

当我们能够确定循环的起止步进变量,亦即,可以明确从哪个数开始到哪个数结束,我们用 for 语句来进行循环以完成一些预设工作。比如说,我们绘制一张数据表格,因为数据总条数是明确的,故而用 for 循环语句能够很方面地完成此工作。

但当我们不能明确循环总次数时,for就不好派上用场。这时,用 while 循环语句是最好的选择。while 语句结构如下所示:

var k = 0;
while(k<100) {
    //do sth. here
    k++;
}

while 也需要一个步进依据,可以是数值,也可以是其他的检测方式。上面结构中,我们用一个变量 k 为步进依据,并不是 while 的最经典的使用场景,因为这个场景 for 也能胜任:步进变量从 0 开始 到 100 时终止循环;这里,举此例仅仅是为了了解 while 的结构和用法。可以看到,k++ 和 for 一样出现,不同的是位置,现在,在 while 这里,k++ 放在了大括号内(一般要放在做完事之后,也就是说做完事情才能让 k 步进—— k 可能是做事的依托变量)。

while 和 for 只要在知道循环次数时是可以互换的,不过,while语句更为高效,尤其是在处理特大次数的循环之时。另外,while 语句还有一些结构变体,能够解决一些特殊需求的循环,比for强大。

红影 发表于 2022-2-15 19:24

在这个例子里,看起来差不多啊,while好像也是需要明确条件啊。

马黑黑 发表于 2022-2-15 21:22

红影 发表于 2022-2-15 19:24
在这个例子里,看起来差不多啊,while好像也是需要明确条件啊。

可以不需要。比如,我们有一个 find(str) 函数,它在一个大文本中查找,每一次找到都返回值总是字串,但到底能找到多少个字串我们不知道,这个时候for就能无能为力,while则可以大显身手:

let str = "";
str = find(myStr);
while (str != "") {
    str += find(myStr);
}

红影 发表于 2022-2-16 10:11

马黑黑 发表于 2022-2-15 21:22
可以不需要。比如,我们有一个 find(str) 函数,它在一个大文本中查找,每一次找到都返回值总是字串,但 ...

str != "" 这个是什么意思?

马黑黑 发表于 2022-2-16 13:25

红影 发表于 2022-2-16 10:11
str != "" 这个是什么意思?

!= 是不等于的意思

红影 发表于 2022-2-16 14:02

马黑黑 发表于 2022-2-16 13:25
!= 是不等于的意思
为什么不等于的时候反倒累加?

马黑黑 发表于 2022-2-16 22:35

红影 发表于 2022-2-16 14:02
为什么不等于的时候反倒累加?

这是逻辑问题:

如果两个文本框的内容都不是为空,则说明都填写内容的,那么,就把文本框的内容暂存到变量,待稍后处理

红影 发表于 2022-2-17 11:00

马黑黑 发表于 2022-2-16 22:35
这是逻辑问题:

如果两个文本框的内容都不是为空,则说明都填写内容的,那么,就把文本框的内容暂存到 ...

嗯嗯,这个有点绕的。

加林森 发表于 2022-2-21 10:40

继续来学习
页: [1]
查看完整版本: JS:while循环语句简介