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未満のとき繰り返すというコードです。行われる処理を順番に書くと、
- int a; によってaという名前の変数が作られます。
- a=0 によってaに0という数値が入ります。
- ループの条件が確認されます。 a<5 で判定されます。現在、aには0が入っているので、0<5 となり、真(true)となります。そのため、ループの処理が実行されます。
- ループの中の処理が実行されます。println(a); によってコンソールにaの値が表示されます。
- ループの処理が終わったので、a++ が実行されます。 a++ は aの値に1を加えるということです。すなわち、現在aには0が入っているため0+1となり、aには1が入ります。
- 条件が確認されます。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です。