使用for循环打印偶数,而不使用if条件语句。

20 浏览
0 Comments

使用for循环打印偶数,而不使用if条件语句。

我有一个简单的方法来打印出1到1000之间的所有偶数。

我想要将条件设置在循环的行内而不是下面。

这是我尝试过的代码:

   for (let i = 1; i <= 1000 && i % 2 == 0 ; i++) {
        document.write(i + " ");
// 我不希望条件出现在这里!!!
    }

我在论坛上搜索并尝试了以下代码:

  for (let i = 1;( (i <= 1000) && (i % 2 == 0) ); i++) {
        document.write(i + " ");
    }

它看起来像是相同的代码,但是当我运行它时控制台上什么都没有显示出来。

0
0 Comments

问题的原因是循环头中的测试条件确定循环是否继续迭代。由于i的第一个值是1,而1不是偶数,所以循环体永远不会运行。整个测试表达式必须是真(或者"truthy"),循环才不会停止。因此,你不能将偶数测试放在循环头中,它必须是循环体内的一个单独的测试。你可以通过在迭代中从2开始并每次加2来实现无需测试的情况。这样,你就不需要进行偶数性测试了。

解决方法是将偶数测试放在循环体内部,如下所示:

for (let i = 1; i <= 1000; i++) {
  if (i % 2 === 0) {
    document.write(i);
  }
}

以上代码将从1到1000之间的所有偶数打印出来。在循环的每次迭代中,通过使用取余运算符(%)来检查i是否为偶数。如果i对2取余的结果等于0,则说明i是偶数,将其打印出来。

这样,我们就可以使用循环和条件判断来打印出所有的偶数,而不需要使用if条件语句。

0