2

for循环是否可以重复一个数字3次?例如,

for (i=0;i<=5;i++)

创建这个:1,2,3,4,5。我想创建一个执行此操作的循环:1,1,1,2,2,2,3,3,3,4,4,4,5,5,5

那可能吗?

4

9 回答 9

6
 for (i=1;i<=5;i++)
     for(j = 1;j<=3;j++)
         print i;
于 2011-04-18T23:00:27.663 回答
3

是的,只需将您的循环包装在另一个循环中:

for (i = 1; i <= 5; i++) {
   for (lc = 0; lc < 3; lc++) {
      print(i);
  }
}

(您的原始代码说您想要 1-5,但您从 0 开始。我的示例从 1 开始)

于 2011-04-18T23:00:33.337 回答
3

您可以在 for 循环中有两个变量,并且仅当 j 是 3 的倍数时才增加 i:

对于 (i=1, j=0; i <= 5; i = ++j % 3 != 0 ? i : i + 1)

于 2011-04-18T23:04:28.770 回答
1

确实。您可以嵌套 for 循环:

for (var i = 1; i < 6; ++i) {
    for(var j = 0; j < 3; ++j) {
        print(i);
    }
}

请注意,您问题中的代码将打印0, 1, 2, 3, 4, 5,而不是1, 2, 3, 4, 5. 我已经修复了它以匹配您在我的回答中的描述。

于 2011-04-18T23:04:54.263 回答
0

如果你真的只想要一个循环,你可以使用第二个变量,比如:

for(var i = 0, j = 0; i <= 5; i = Math.floor(++j / 3)) {
     // whatever
}

虽然,根据你想要这个的原因,可能有更好的方法。

于 2011-04-18T23:00:53.883 回答
0

只需添加嵌套在第一个循环中的第二个循环:

for (i = 0; i <= 5; i++)
    for (j = 0; j < 3; j++)
        // do something with i
于 2011-04-18T23:01:14.053 回答
0

您可以使用嵌套的 for 循环

for (var i=0;i<5; i++) {
  for (var j=0; j<3; j++) {
   // output i here
  }
}
于 2011-04-18T23:02:09.317 回答
0

您可以在循环中使用两个变量:

for (var i=1, j=0; i<6; j++, i+=j==3?1:0, j%=3) alert(i);

但是,通过查看代码它的作用并不是那么明显。您最好将一个循环嵌套在另一个循环中:

for (var i=1; i<6; i++) for (var j=0; j<3; j++) alert(i);
于 2011-04-18T23:10:32.440 回答
0

我看到很多带有嵌套循环的答案(显然是最好和最容易理解的解决方案),然后是一些带有一个循环和两个变量的答案,尽管令人惊讶的是,没有人提出一个循环和一个变量。所以只是为了练习:

for(var i=0; i<5*3; ++i)
   print( Math.floor(i/3)+1 );
于 2011-04-18T23:12:22.257 回答