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 ループで 2 つの変数を使用し、j が 3 の倍数の場合にのみ i を増やすことができます。

for (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

次のように、本当に1 つのループだけが必要な場合は、2 番目の変数を使用できます。

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

ただし、これが必要な理由によっては、おそらくより良い方法があります。

于 2011-04-18T23:00:53.883 に答える
0

最初のループにネストされた 2 番目のループを追加するだけです。

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

ループでは 2 つの変数を使用できます。

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

入れ子になったループ (明らかに最も素晴らしく、最も理解しやすい解決策) に関する多くの回答と、1 つのループと 2 つの変数に関する回答がいくつか見られますが、驚くべきことに、1 つのループと 1 つの変数を提案した人は誰もいませんでした。したがって、演習のために:

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