配列変数は似た用途の変数を一括したものです。ならばそれを一括して処理する方法があるはずです。今回はその方法について話していきます。
今回の要点です。
では、いってみましょう。
配列変数は似た変数を一括したものと言えます。だというのに、それを一括して処理できないはずはありません。そんな不条理なことがあっていいはずがありません。ええ、そうですとも!
そういうときは前々回のループを上手く使ってやれば良いのです。
では、前回のテストの点の平均点を出してみましょう。
プログラム | 実行結果 |
---|---|
// For2.cpp #include <iostream.h> int nResults[] = { 641, 703, 405, 598, 402, 752, 330, 0, 445, 662, 254, 710, 467, 530, 548, 485, 244, 396, 601, 510, 532, 687, 623, 420, 647, 587, 490, 647, 575, 688, 764, 633, 712, 312, 655, 425, 722, 631, 680, 602 }; int main() { int i; int nSum = 0; for(i = 0; i < 40; i++) nSum += nResults[i]; cout << "クラスの平均点は " << nSum / 40.0 << " 点です。" << endl; return 0; } |
クラスの平均点は 542.875 点です。 |
今回はテストの点数 nResults[] をグローバル変数(第9章を参照)にしました。色々理由はありますが、とりあえずは、スペースの都合とだけ言っておきます。
ループの回数を数えるために使っている変数 i の中身は何でしょうか? もちろん処理を行った回数です。初めは0で、39まで処理を行い、40になったらループを抜けるのでしたね。
何かどこかで見た数字ですね。そうです。これは配列変数のインデックス(番号)と同じですね。なので、nResults[i] としてやれば1つずつ順番に処理を行うことができます。
回数 | i の値 | 処理 |
---|---|---|
1回目 | 0 | nSum += nResults[0]; |
2回目 | 1 | nSum += nResults[1]; |
3回目 | 2 | nSum += nResults[2]; |
... | ... | ... |
40回目 | 39 | nSum += nResults[39]; |
ループ終了 | 40 | 次の処理へ |
このように、全員のテストの合計を足すことが簡単にできるのです。
あとはこれを40で割れば平均点がでてきます。ここでは答えを小数で出すために 40.0 で割ります(第3章を参照)。...どうやら 542.875 点のようですね。
こうしてみてみると、for を使っていても、1回目と2回目の処理は微妙に違います。そのあとも同じです。
どうやらこの for はもっといろいろなことに使えそうです。変数を中に入れ、その値を変えていけば、毎回少し違う処理を行うことができるようです。これに if 文を組み合わせると、もっといろいろなことができそうです。
次回はそういったことをやってみたいと思います。
では、今回の要点です。
それでは次回まで。さようなら。
Last update was done on 1999.3.15
この講座の著作権はロベールが保有しています