第16章 ループと配列変数

 配列変数は似た用途の変数を一括したものです。ならばそれを一括して処理する方法があるはずです。今回はその方法について話していきます。


 今回の要点です。


 では、いってみましょう。


 配列変数は似た変数を一括したものと言えます。だというのに、それを一括して処理できないはずはありません。そんな不条理なことがあっていいはずがありません。ええ、そうですとも!

 そういうときは前々回のループを上手く使ってやれば良いのです。

 では、前回のテストの点の平均点を出してみましょう。

プログラム実行結果
// 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 文を組み合わせると、もっといろいろなことができそうです。

 次回はそういったことをやってみたいと思います。

 では、今回の要点です。


 それでは次回まで。さようなら。


第15章 配列変数 | 第17章 for の書式

Last update was done on 1999.3.15

この講座の著作権はロベールが保有しています