前回はfor loopの中で変数 i を使って、randomよりももう少し規則性のある繰り返しを作ってみました。

今回は、さらにそのfor loopの中で分岐を使って、もう少し複雑な規則性を持たせたいと思います。

for loopの中で ifを使うと…どうなる?

void setup() {

  size(550, 400);
  background(0);

  for (int i = 0; i<10; i++) {

    if (i < 5) {
      fill(255,0,0);
      ellipse(i * 50 + 50, height/2, 40, 40);
    } else {
      fill(0,255,0);
      ellipse(i * 50 + 50, height/2, 40, 40);
    }
  }
}

さて、このコードは、iが5より小さい時には
fill(255, 0, 0)
を実行し、
そうでない時(else)は、
fill(0, 255, 0)
を使う、というものです。

実行結果はこんな感じ。
sketch_160819b

繰り返しの回数が一定より多い時に色が変わっていることが判ります。

これはもちろん色を変えたい時だけではなく、大きさを変えたい時や、場所を変えたい時などにも利用出来ます。

もう1例見てみましょう。

void setup() {

  size(550, 400);
  background(0);

  for (int i = 0; i<10; i++) {

    if (i % 2 == 0) {
      fill(255,0,0);
      ellipse(i * 50 + 50, height/2, 40, 40);
    } else {
      fill(0,255,0);
      ellipse(i * 50 + 50, height/2, 40, 40);
    }
  }
}

%は、前の数を後の数で割って、その余りを求めるという演算子です。
この場合だと、2で割った時の余りが0になる、つまり割り切れる時、という指定になります。
2で割り切る事が出来る…つまり、偶数ですね。

実行結果はこのようになります。

sketch_160819b

for loopでif文を使う時には、この i という変数がそのループの回数(何回目か)を表している、というところに着目すると、色々な使い方が出来るのでおすすめです。

もちろん、今後出てくる配列やリストなどを用いて、もっと複雑な表現をすることも可能です。
しかし、現段階ではこの i に注目する思考法にトライしてください。

さて、一旦if文はこれで終わりですが、今後もif文は沢山出てくるので、しっかり復習しておいてください。
では!