(i % 3 == 0)是指( i % 3 == false )吗?

问题描述 投票:-1回答:2

我是一个学习JS的初学者。谁能给我解释一下为什么输出的是 "1"?

这里是

for (var i = 1; i <= 15; i++) {
  if (i % 2 == 0) {
    i += 2;
  } else if (i % 3 == 0) {
    i++;
  }
  console.log(i);
}

输出: 1,4,5,8,10,11,14,16。

我可以理解为什么输出等于4、5、8、10、11、14、16,但是我不理解为什么输出的是1...

javascript loops if-statement modulus
2个回答
2
投票

i1,你定义的两个条件语句都不会被执行。

for (var i = 1; i <= 15; i++) {
  
  if (i % 2 == 0) {
    console.log( 'inside if' );
    i += 2;
  } else if (i % 3 == 0) {
    console.log( 'inside else-if' );
    i++;
  } else {
    console.log( 'neither if nor else-if' );
  }
  
  console.log(i);
}

剩下的总是 1 当你把它与 23,这不等于 0.

console.log( 1 % 2 );
console.log( 1 % 3 );

1
投票

当你看你的代码时,控制台已经脱离了if-else条件,这意味着它从条件中打印i,并脱离了条件,你的for循环从1开始,当i=1时,条件跳过,控制台执行并打印i,这等于1,我想这就是为什么,而I % 3 == 0意味着I % 3 == false,这是因为

var i = 2;
if (i % 2 == 0)
{
    console.log(0)
}
if (i % 2 == false)
{
    console.log(0)
}

答案都是0

© www.soinside.com 2019 - 2024. All rights reserved.