【问题标题】:javascript: loop add number [closed]javascript:循环添加数字[关闭]
【发布时间】:2016-01-13 00:31:47
【问题描述】:

如何在 javascript 中像这样循环? 11 21 32 43

我已经有这个代码了。

for(var i=11; i <= 43; i += 10){
document.write(i+'<br>');
}

【问题讨论】:

  • 奇怪的循环。不应该是 10、21、32、43 吗?还有i += 11?但是你有代码..它做了什么?
  • 正如您在下一个循环中看到的那样,它将添加 10 和 11 等等...
  • 它没有添加11,当然也没有添加等等。如果可以,范围将是 11、21、32、44。您可以使用 var j = 10; for (var i = 11; i &lt;= 44; i += j++) 来实现。
  • 我很好奇这个循环是干什么用的哈哈

标签: javascript loops


【解决方案1】:

如果您想先添加 10 个,然后添加 11 个,依此类推,那么您的循环将如下所示。但请注意,它会循环到 44 而不是 43,因为您将 12 添加到 32:

j = 10;
for(var i=11; i <= 44; i += j++){
  document.write(i+'<br>');
}

稍作改动就可以得到您所描述的内容。您可以将 i 增加 10 + 一些东西,而不是使用额外的变量“j”。在您的情况下,当 i == 11 时为 0,如果 i > 11 则为 1。这可以写为单个布尔表达式,在计算中计算时将转换为 0 或 1。所以下面的 sn-p 会给你 11、21、32、43。

for (var i = 11; i <= 43; i += (10 + (i>11))) {
  document.write(i + '<br>');
}

在另一个变体中,您始终可以添加 11,但从 10 开始 i 并为第一次迭代添加一个。这也会给你11、21、32、43这个奇怪的序列,但我觉得上面的sn-p更清楚一点。

for (var i = 10; i <= 43; i += 11) {
  document.write((i + (i==10)) + '<br>');
}

无论如何,没有必要做一个花哨的循环。您也可以编写更多代码并以可读和可理解的方式实现逻辑。也许在循环中使用“if”来影响i

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多