无条件的For循环-Javascript

时间:2019-11-26 16:56:32

标签: javascript for-loop

for (let current = 20; ; current = current + 1) {
  if (current % 7 == 0) {
    console.log(current);
    break;
 }
}
// → 21

我不理解该语法的工作方式。为什么会打印21?我正在阅读雄辩的js并偶然发现了这一点。

4 个答案:

答案 0 :(得分:3)

电流从20开始。

let current = 20

它增加1

current = current + 1

一旦可被7整除(0表示无余数,则可被整除)

  if (current % 7 == 0)

打印电流(21)-> 21%7 = 0并停止

console.log(current);
break;

答案 1 :(得分:1)

首先,您必须知道%符号的含义。

%用于模量-表示余数。

例如:-

5%2 --- // (5/2) here remainder is 1 so result is 1.

现在转到实际问题:-

LOOP

for (let current = 20; ; current = current + 1) {
  if (current % 7 == 0) {
    console.log(current);
    break;
 }
}

第一轮

1)当前值为20

2)if(current%7 == 0)-定义条件,将“ current”除以7(current / 7)时的余数,这里将解析为

a) (20%7 = 6 (remainder))

b) if(6 == 0) -- false

3)跳过if块

4)现在,当前=当前+1 //当前= 21

第二回合

1)当前值为21

2)if(当前%7 == 0)

解析为---

 a) (21%7 = 0 (remainder))

 b) if(0  == 0) -- true

3)进入if块

4)在控制台上打印current的值,即21

5)执行break语句并终止循环

---结束程序---

答案 2 :(得分:0)

空语句(即,只是一个半冒号)在javascript中是有效的语句。这只是意味着在for循环的每次循环迭代开始时都不会检查任何条件。

现在,如果我们看一下该循环的作用,我们可以看到在第一次迭代中,current = 20,因此内部条件失败了(因为20不能被7整除)。

发生下一次迭代,电流增加到21,现在内部条件通过(21 可被7整除)。因此,我们打印21并跳出循环。

答案 3 :(得分:0)

for括号中的三个部分是:

  • 循环之前要做什么
  • 谓词,如果返回true,则继续循环
  • 每次循环后该怎么办

所以:

for(a;b;c) {
   d
}

...等效于:

a;
while(b) {
  d;
  c;
}

...具有奖励功能,如果a,b,c,d中的任何一个缺失,则b缺失会“起作用”,等同于true

所以:

int i=0;
for(;i<10;i++) {
   println('hello');
}`

...等效于:

int i=0;
while(i<10) {
   println('hello'); 
   i++;
}

并且:

for(int i=0;;i++) {
   println('hello');
}`

...等效于:

int i=0;
while(true) {
   println('hello'); 
   i++;
}

...这是一个无限循环,因为while(true)

并且:

for(int i=0;i<10;) {
   println('hello');
}`

...等效于:

int i=0;
while(i<10) {
   println('hello'); 
}

(...这是一个无限循环,因为i永远不会达到10)

并且:

for(;;) { println('hello'); }

是:

while(true) { println('hello'); }