読者です 読者をやめる 読者になる 読者になる

ともろーの日記

Initializing . . .

Processing ではじめるプログラミング 7日目(ループさせてみる)

昨日の復習です。1+2をしてみましょう。

答え

int a = 1;
int b = 2;
int c;
c = a+b;
print(c);

この書き方以外にも正解があるので、全く同じでなくても大丈夫です。

それでは、1+2+3はどうでしょうか?

変数をさらに1つ作りますか?では、1+2+3+4は?

とまぁこのようにたくさんになってくると大変になるので、ループ処理をします。

ループするときは、for(;;){}; という文章を使います。

詳しく書くと、for(初期値;ループの条件;一回のループが終わるごとの処理){ループさせる処理};  というように書きます。

int a;
for (a=0;a<5;a++){
  println(a);
}

このソースコードは、はじめにa という変数を宣言して、その変数が5未満のとき繰り返すというコードです。行われる処理を順番に書くと、

  1. int a; によってaという名前の変数が作られます。
  2. a=0 によってaに0という数値が入ります。
  3. ループの条件が確認されます。 a<5 で判定されます。現在、aには0が入っているので、0<5 となり、真(true)となります。そのため、ループの処理が実行されます。
  4. ループの中の処理が実行されます。println(a); によってコンソールにaの値が表示されます。
  5. ループの処理が終わったので、a++ が実行されます。 a++ は aの値に1を加えるということです。すなわち、現在aには0が入っているため0+1となり、aには1が入ります。
  6. 条件が確認されます。aには1が入っていて、条件式は a <5  です。当然、真(true)ですから、もう一度実行されます。

条件式で偽(false)が出るまでループは実行されます。


この式を応用すると、1+2+3+4+5ができます。変数名はLoopCount(ループ回数)、sum(合計)とします。どのような文字列を使っても問題ないですが、わかりやすいものにしましょう。

int LoopCount = 0;
int sum = 0;
for(LoopCount = 0; LoopCount <= 5; LoopCount++ ){
  sum = sum + LoopCount;
}
print(sum);

≦は<=と書きます。1+2+3+4+5をしたいので、LoopCount が5のときも実行するようにします。 sum には、さっきまでのsumの値に LoopCount を足した値を入れます。

さっきまでの値に追加するという書き方も存在します。

int LoopCount = 0;
int sum = 0;
for(LoopCount = 0; LoopCount <= 5; LoopCount++ ){
  sum += LoopCount;
}
print(sum);

上2つのコードは同じ意味です。

変数に追加する(加算代入)は += とかきます。 変数から引く場合(減算代入)は -= 、変数に掛ける場合(乗算代入)は *= 、変数を割る場合(除算代入)は  /= とかきます。

ループが終わると、print(); で合計値を表示させればOKです。15と結果が出ましたか?

演習課題です。1~10までを掛けた数を表示してみましょう。



解答例

int LoopCount=1;
int product=1;
for(LoopCount = 1; LoopCount <= 10; LoopCount++ ){
  product *= LoopCount;
}
print(product);

もちろん他にも書き方があるので、自分の書き方で大丈夫です。答えは3628800です。