法政大学国際文化学部

情報コミュニケーションI

担当 重定 如彦

20031127

 

1.       繰り返し処理

 これまでのプログラミングの知識では、記述したプログラムは一回実行したら終わりで、同じプログラムを繰り返し実行させることはできませんでした。もし、1から100までの数の合計を計算するプログラムを記述しようとした場合、以下のように、100行以上のプログラムを記述する必要があります。

Dim A As Integer

A = 0

A = A + 1

A = A + 2

…….

A = A + 100

100行記述しなくても以下のように1行で記述することも可能ですが、いずれにせよ、プログラムを記述する手間が大変であることに変わりはありません。

 A = 1 + 2 + 3 + 4 + 5 + …… + 100

また、計算する回数が決まっていれば上記のようにプログラムを記述することは可能ですが、1からテキストボックスに入力した数字までの数の合計を計算するといったプログラムを作成することはできません。Visual Basic.Netではこういった、同じ種類の計算を繰り返し行うという処理を    「繰り返し処理」という方法を使って記述することができます。繰り返し処理はコンピュータの最も得意とする所であり、プログラムを正しく記述すれば人間にはとても実行できないような、何万、何億回といった繰り返し処理を非常に簡単に記述し、実行することが可能になります。

 繰り返し処理は条件分岐と同様に、Visual Basic .Netの制御構造の一つです。Visual Basic .Netでは繰り返し処理を行うためにいくつかの方法が用意されています。いずれの場合も「特定のブロック」を「ある条件が満たされている間」繰り返して処理を行うという形でプログラムを記述します。

2.       For文による繰り返し処理 その1

Visual Basic .Netで最もよく使われる繰り返し処理はFor文による繰り返し処理です。For文による繰り返し処理には以下の特徴があります。

     何回繰り返しを行うかを数える為のカウンタ(counterと呼ばれる変数を用意する。

     カウンタ変数に初期値を設定する。この処理をカウンタの初期化と呼びます。

     一回繰り返し処理を行うたびに、カウンタの値を1増加させる。

     カウンタの値が一定の値を超えた時点で繰り返し処理を終了する。

For文は以下の形式で記述します。

 For カウンタ変数  初期値 To 最終値

   繰り返し処理ブロックのプログラム

 Next

For文の処理の流れををフローチャートにすると以下のようになります。図のようにFor文は「カウンタ変数の初期化」、「繰り返しの終了判定」、「繰り返し処理のブロックを実行」、「カウンタ変数に1を足して繰り返しの終了判定に戻る」という4つの動作を行っている点に注目してください。

 

例題7−1 For文を使って1から10までの合計を計算するプログラム

For文を使って、1から10までの合計を計算し、結果をテキストボックスに表示するプログラムを作成します。

 

 1.コントロールの配置とプロパティの設定

 例題7−1という名前のプロジェクトを作成し、図のようにラベルを1個、テキストボックスを1個、ボタンを1つ配置して下さい。次に、それぞれのプロパティを以下のように変更して下さい。

オブジェクト

プロパティ

設定値

テキストボックス

(name)

「合計」

Text

空白に設定

ボタン

Text

「計算」

2. イベントハンドラを作成する

 Windows フォームエディタの「計算」ボタンをダブルクリックしてイベントハンドラを作成してください。イベントハンドラにはIf文を使って以下のプログラムを記述して下さい。なお、コメントの部分は説明の為に記述しているので、入力する必要はありません。

        Dim i, 計算結果 As Integer      'iはカウンタ変数、計算結果は合計を格納する変数

        計算結果 = 0                    '計算結果を初期化する

        For i = 1 To 10                 '繰り返し処理の先頭。iが1から10まで繰り返す

            計算結果 = 計算結果 + i     '繰り返し処理のブロック。

        Next                            '繰り返し処理の末尾。iに1を足し先頭に戻る

        合計.Text = 計算結果            '計算結果をテキストボックスに表示する

1行目:変数の定義を行います。For文で使用するカウンタ変数も他の変数と同様に定義を行う必要があるので、ここでiというカウンタ変数を作成しています。また、合計の計算途中の結果を格納するための「計算結果」という変数を定義します。

2行目:計算を開始する前に、計算結果の値を0にする必要があります。このように、計算前に計算結果を格納する変数の値を初期値に設定することを「初期化」と呼びます。

3〜5行目:繰り返し処理を記述します。繰り返し処理が行われるたびに、カウンタ変数の値が1から10まで1ずつ増えていくので、4行目の繰り返し処理のブロックでは、「計算結果」に1から10までの値が順番に足されます。従って、この繰り返し処理が終了すると、「計算結果」には1から10までの合計である55が代入されることになります。

6行目:計算結果を表示する為に、テキストボックスのTextプロパティに代入します。

3.プログラムの実行と確認

プログラムを実行し、計算ボタンをクリックし、55が表示されることを確認して下さい(下図)。

 Tips カウンタ変数の名前

プログラミングではカウンタ変数の名前には伝統的にi が使われることが多いようです。また、カウンタ変数が同時に複数必要になった場合(例えば繰り返し処理を入れ子にした場合など)は、2つ目以降のカウンタ変数は j、k、lが使われます。この授業でもこの伝統に従い、例題7−1のように、他に良い名前の付けようがないカウンタ変数は i を使うことにします。

3.       For文による繰り返し処理その2

 先ほどの例では、1回の繰り返し処理が行われる度にカウンタ変数に1が足されましたが、次の方法で、繰り返し処理の後のカウンタ変数の増減を自由に設定することが可能です。

 For カウンタ変数  初期値 To 最終値 Step 増減値

   繰り返し実行ブロックのプログラム

 Next

 上記のように、1行目の最後に、「Step 増減値」を記述することによって、繰り返し処理の後にカウンタ変数に増減値の値が加算されることになります。

 Step 増減値 の「増減値」に負の値を設定することも可能です。その場合は、繰り返し処理の終了条件が、「カウンタ変数が最終値未満になった場合」に変更される点に注意が必要です。

例題2 For文を使って1から特定の数までの奇数の合計を計算するプログラム

For文を使って、1からテキストボックスに入力した数字までの奇数の合計を計算し、結果をテキストボックスに表示するプログラムを作成します。

 

 1.コントロールの配置とプロパティの設定

 まず、例題7−1のフォームを縦方向に伸ばし、もともとあったコントロールをすべて下にずらして下さい。次に、ラベルを二つ、テキストボックスを一つ追加し、それぞれのプロパティを以下のように設定して下さい。また、「合計」のラベル名を「奇数の合計」に変更して下さい。

オブジェクト

プロパティ

設定値

テキストボックス

(name)

「上限」

Text

空白に設定

2. イベントハンドラを作成する

 例題1で作成したイベントハンドラを以下のように修正して下さい。

 


 

 

 

例題1との違いは、For文の上限値がテキストボックスに入力された数字に変更されたことと、  Step 2を追加することによって繰り返しのブロックが実行されるたびにカウンタ変数に2が足されるという点です。カウンタ変数に2を足すことによって常にカウンタ変数を奇数にすることができます。

3.プログラムの実行と確認

プログラムを実行し、計算ボタンをクリックし正しく計算されることを確認して下さい。

 Tips カウンタ変数がFor文の上限値に一致しない場合

 例えば、例題2で、テキストボックスに10を入力した場合、カウンタ変数は1,3,5,7,9、11・・・のように増えていくのでいくら繰り返し処理を行っても上限値と一致しません。繰り返し処理は、カウンタ変数が上限値を超えた場合に終了するので、この場合は、カウンタ変数が11になった時点で繰り返しが終了します。従って、1+3+5+7+9=25が答えになります。

4.       繰り返し処理の中断

 プログラムでは時々繰り返し処理の途中で強制的に繰り返し処理を中断したい場合があります。例えば、例題2に「100以上の数は計算しない」という条件をつけた場合、カウンタ変数の値が100以上になった時点で繰り返し処理を中断する必要があります。

 For文では、繰り返し処理のブロック内で「Exit For」という文を記述することにより、その文が実行された時点で繰り返し処理が強制的に中断されます。Exit Forは繰り返しブロック内の任意の行に記述することができます。
 Exit Forを記述した場合のフローチャートを以下に記述します(図では、簡単のため、Step 増減値を記述しなかった場合の例を挙げます。Step 増減値を記述した場合の動作も同様です)

 

例題3 例題2を、100以上の数字を計算しないように変更する

 例題2のイベントハンドラにIf文を追加し、以下のように変更して下さい。

 Exit Forを記述すると、繰り返し処理が終了してしまう為それより後に記述された繰り返しブロックのプログラムが実行されなくなります。従って、Exit Forは上記のプログラムのように、If文などの条件分岐を使って特定の条件を満たした場合にのみ実行する必要がある点に注意して下さい。

Tips 繰り返し処理と無限ループ

繰り返し処理で最も注意しなければならないことは、「繰り返しを終了する条件」を正しく設定するという事です。これを正しく設定しないといつまでたっても繰り返し処理が終わらないという「無限ループ」に陥ってしまう可能性があります。例えば、以下のように増減値に0を指定してしまうと、いつまでたってもカウンタ変数の値が変化しないため、ループが終了しなくなってしまいます。

Dim i As Integer

  For i = 0 To 10 Step 0

    繰り返し処理を行うプログラムのブロック

  Next

 プログラム中に無限ループを記述してしまった場合、そのプログラムを実行してしまうと、プログラムが永遠に終了しなくなってしまいます。Visual Studio .Netからプログラムを実行した場合、ツールバーの「デバッグの停止」ボタンをクリック(又はメニューの「デバッグ」「デバッグの停止」を選択)すればプログラムの実行を強制終了できます。しかし、Visual Studio .Netからではなく、実行ファイルを直接実行した場合は、CtrlAltDelキーを押して「Windowsタスクマネージャ」からプログラムを強制中断しなければならない点に注意してください。

5.       Do While 文による繰り返し処理

 For文は、繰り返しの回数がはっきりと数えられる場合には有効ですが、時には何回繰り返しを行えば良いかがプログラムを実行する前にわからない場合があります。また、繰り返し処理後に、カウンタ変数の数が不規則に増減するような繰り返し処理もFor文では記述することはできません。

 Visual Basic .Netではその為に、以下のようなDo While文が用意されています。

  Do While 条件式

    繰り返し処理ブロックのプログラム

  Loop

 Do While文は、以下のような特徴があり、条件式が真である間、繰り返しブロックを実行します。

     For文と異なり、カウンタ変数を記述する部分はない。

     条件式が真の間(Whileは日本語で「〜の間」という意味です)繰り返し処理を実行する。

     繰り返し処理の開始時に、条件式が偽の場合、繰り返しブロックは一回も実行されない。

 Do While文を実行した場合のフローチャートを以下に記述します。

Tips For文とDo While文の対応

Do While文はFor文からカウンタ変数に関する処理を取り去ったものです。For文を使ったプログラムはDo While 文を使って以下のように書き直す事も可能です。 For文を使った繰り返しと、Do While文を使った繰り返しの処理がどう対応しているか各自確認してみて下さい。

 

Variable i                                                      Variable I

For i = 0 To 10 Step 2                                   i = 0

  繰り返し処理ブロック                                Do While i <= 10

Next                                                       繰り返し処理ブロック

                                                                       i = i + 2

                                                                      Loop

 

 例題7−4 Do While文を使ったプログラム例

 数字を1から順番に加算した合計が、テキストボックスに入力した数字を超えるには数字をいくつまで足す必要があるかを計算するプログラム例を挙げます。

 

 1.コントロールの配置とプロパティの設定

 例題7−4という名前のプロジェクトを作成し、図のようにラベルを1個、テキストボックスを1個、ボタンを1つ配置して下さい。次に、それぞれのプロパティを以下のように変更して下さい。

オブジェクト

プロパティ

設定値

テキストボックス

(name)

上から順に「上限」、「答え」

Text

空白に設定

ボタン

Text

「計算」

2. イベントハンドラを作成する

 Windows フォームエディタの「計算」ボタンをダブルクリックしてイベントハンドラを作成し、以下のプログラムを記述して下さい。

        Dim 合計, x As Integer      '変数の定義

        合計 = 1                    '変数「合計」の初期化

        x = 1                       '変数「x」の初期化

        Do While 合計 <= 上限.Text  '合計がテキストボックス以下の時に繰り返しを実行

            x = x + 1               'xに1を足す

            合計 = 合計 + x         '合計にxを加算する

        Loop

      答え.Text = x               '答えのxをテキストボックスに表示する

1行目:変数の定義を行います。計算途中の合計を格納する変数「合計」と、1からいくつまでの数字を合計したかをカウントする変数「x」を定義します。

2行目:変数「合計」の初期化を行います。1はすでに加算されている状態から計算するということで、「合計」には1を代入します。

3行目:変数「x」の初期化を行います。同様の理由で「x」には1を代入します。

4〜7行目:繰り返し処理を記述します。合計がテキストボックスの値を超えない場合(4行目で判定)、いくつまで数字を合計したかを表すxに1を足し(5行目)、合計にxを加算し(6行目)、4行目に戻ります。

7行目:繰り返し処理を終了した時点で、変数「x」には答えが格納されているので、答えを表示する為に、テキストボックスのTextプロパティにxの値を代入します。

3.プログラムの実行と確認

プログラムを実行し、正しく動作することを確認して下さい。図の場合、1+2+3+4=10、1+2+3+4+5=15なので、1から5まで合計すると10を超えるので答の5は合っています。

6.       その他の繰り返し処理

 Do文による繰り返し処理には以下のバリエーションが存在します。それぞれの違いは、いつ繰り返しを終了するかの条件を判定するかの場所です。

6.1 Do Loop While

 Do Loop While 文は以下のように記述します。

 Do

    繰り返し処理ブロックのプログラム

 Loop While 条件文

 Do Loop While 文は、Do While 文と似ていますが、繰り返し処理の終了判定を、繰り返し処理の終了後に行うという点が異なっています。従って、どんな場合でも必ず最低1回は繰り返し処理ブロックのプログラムが実行されます

6.2 Do Until 文とDo Loop Until

 Do Until文はDo While文に似ていますが、条件式が偽の場合に繰り返し処理を行う点が異なります。Untilは日本語で〜までという意味で、いいかえると条件式が真になるまで繰り返し処理を行います。つまり、繰り返し処理を行う条件が、Do While 文と Do Until文では正反対になっているということです。Do Loop Until 文も同様で、こちらは繰り返し処理を実行後に、条件式が偽の場合、繰り返し処理を行います。以下にそれぞれの記述方法を挙げます。

 

 

Do Until 条件文                             Do

   繰り返しブロック                                          繰り返しブロック

Loop                                                           Loop Until 条件文

 

6.3 Do 〜 Loop

 Do Loop文は繰り返しブロックを永遠に繰り返します。Do Loop文を記述した場合は、必ず、繰り返しブロック内に、次に説明するExit Loopを記述して繰り返し処理をするするようにして下さい。

6.4 繰り返しの中断

 Do ではじまる5種類の繰り返し処理は、いずれも繰り返し処理ブロック内に Exit Loop と記述することで、繰り返し処理をそこで強制的に中断することが可能です。Exit Loop の具体的な使い方は、For文で解説した、Exit Forと同様です。特にDo Loop文を記述した場合は、Exit Loopを記述しなければ無限ループになってしまう点に注意が必要です。

 例として、Do Loop文でExit Loopを使った場合のフローチャートを挙げます。

 

 

  Tips Do 〜 Loop文 と他の繰り返し処理

 Do ではじまる5種類の繰り返し処理は、いずれもDo Loop文を使って書き直すことが可能です。例えばDo While 文をDo Loop文で書き直すと以下のようになります。

 

 Do While 条件式                                          Do

    繰り返し処理ブロック                                  If 条件式 Then

 Loop                                                                 Exit Loop

                                                                        End If

                                                                        繰り返し処理ブロック

                                                                      Loop

 

 このように、プログラミング言語では、同じ動作を様々な方法で記述することができる場合があります。そのような場合は、どの方法を使ってもプログラムを完成させることは可能ですが、実際には記述するプログラムの性質に最も適した方法で記述することをお勧めします。例えば、回数の決まった繰り返し処理を記述するには、For文が最も適しています。例題1をDo While文を使って書き直す事も可能ですが、For文を使ったほうがはるかにすっきりと、見た目がわかりやすいプログラムを記述することが可能です。

 

2.配列変数

 これまでのプログラミングでは、変数を利用するには利用したい変数の数だけ変数を一つ一つ定義する必要がありました。しかし、同じ種類のデータを数多く扱いたい場合、この方法では変数の定義が大変です。例えば、40人のクラスの生徒の国語の成績を格納する変数を定義するには、以下のように40個の変数を定義する必要があり、非常にプログラムの記述が困難になります。

 

 Dim 国語の点数1, 国語の点数2, …… 国語の点数40 As Integer

 

 40人程度ならば、まだ記述することが可能ですが、扱う変数の数が、100010000と増えた場合は、この方法では変数の定義を行うことがほとんど不可能になってしまいます。この問題を解決する為に、プログラミング言語では一般的に、同じ種類のデータを「配列」という方法で一つの変数名でまとめて扱うことができます。配列を使った変数のことを「配列変数」と呼びます。

 

2.1 配列変数の定義と参照

Visual Basic .Netでは、配列変数を以下のように宣言します。

 

 Dim 変数名(配列の要素数) As 型名

 

 配列変数を宣言すると、同じ変数名で括弧の中に記述された「配列の要素数+1」種類の変数を定義したことになります。それぞれの変数は 変数名(要素番号) と記述することで表します。

 

 例えば先ほどの国語の点数の例の場合、

 

 Dim 国語の点数(40) As Integer

 

 と記述するだけで、 国語の点数(0)、国語の点数(1)、・・・国語の点数(40)までの41種類の変数が定義されたことになります。配列変数では、要素の番号を表す()の中の数字のことを「インデックス」と呼びます。配列変数は、インデックスを記述する必要がある点を除けば普通の変数と同じ方法で、代入や計算を行うことができます。

 

記述例:

        Dim 国語の点数(40), 合計得点 As Integer

        国語の点数(1) = 10

        国語の点数(2) = 20

        合計得点 = 国語の点数(1) + 国語の点数(2)

 また、配列変数のインデックスには、式を記述することも可能です。

記述例

        Dim n, 国語の点数(40) As Integer

        n = 5

        国語の点数(n) = 10     '国語の点数(5)に10が代入される

        国語の点数(n + 5) = 20 '国語の点数(10)に20が代入される

 

 Tips 配列変数のインデックス

 Visual Basic .Netでは、配列変数のインデックス番号は1ではなく、0から数えられる点に注意して下さい。このため、配列変数を定義すると、「要素数+1」個の変数が定義されることになります。

C言語では配列変数を定義すると、インデックスが0〜要素数−1の「要素数」個の変数が作成されますが、Visual Basic .Netでは0〜要素数の「要素数+1」個の変数が作成されます)

インデックスは必ず整数を記述する必要があります。もし浮動小数型のデータをインデックス部分に記述した場合は、整数型のデータに型変換が行われます。また、インデックスに負の値や宣言時に指定した要素数以上の数字を指定した場合はエラーになる点に注意が必要です。配列のインデックスに関するエラーを回避する方法は例題8−3を参照して下さい。

2.2 配列変数のインデックスの利用例

 配列変数は、それぞれの要素を整数の数字(インデックス)で表すため、通常の変数と比較して以下のような性質を持ちます。

例題8−1 n番目の生徒の点数を計算するプログラム

 40人の生徒を入力するのは大変なので、例題では5人の生徒の国語の点数を配列変数に格納し、テキストボックスに入力した番目の生徒の国語の点数を表示するプログラムを作成します。

 1.コントロールの配置とプロパティの設定

 例題8−1という名前のプロジェクトを作成し、図のようにラベルを7個、テキストボックスを7個、ボタンを1つ配置して下さい。次に、それぞれのプロパティを以下のように変更し、図のようなフォームを作成して下さい。

 

オブジェクト

プロパティ

設定値

テキストボックス

(name)

上から順に

「国語1」、「国語2」、「国語3」、「国語4」、「国語5」

「国語の生徒番号」、「国語」に設定

Text

上から順に

80、20、50、90、70

空白、空白に設定

ボタン

Text

「計算」

 

 

2. イベントハンドラを作成する

 Windows フォームエディタの「計算」ボタンをダブルクリックしてイベントハンドラを作成し、以下のプログラムを記述して下さい。

        Dim 国語の点数(5) As Integer        '配列変数の宣言

        国語の点数(1) = Val(国語1.Text)    'テキストボックスの数字を変数に代入

        国語の点数(2) = Val(国語2.Text)

        国語の点数(3) = Val(国語3.Text)

        国語の点数(4) = Val(国語4.Text)

        国語の点数(5) = Val(国語5.Text)

        '点数をテキストボックスに表示

      国語.Text = 国語の点数(Val(国語の生徒番号.Text))

 

1行目:国語の点数を格納する配列変数「国語の点数」を定義します。

2〜6行目:テキストボックスの中身をそれぞれ配列変数に代入します。この部分は一つ一つ記述していますが、もっと簡単に記述する方法があります。それについては後述します。

8行目:配列変数のインデックスに「国語の生徒番号」のテキストボックスの数字を使うことで、指定した番目の生徒の点数を表すことができます。

 

3.プログラムの実行と確認

プログラムを実行し、正しく動作することを確認して下さい(下図)。また、5人の国語の点数の数字を変更してもプログラムが正しく動作することを確認して下さい。

 

Tips 例題8−1で配列変数のインデックスを使わなかった場合

   例題8−1の8行目を以下のように記述することで、配列変数のインデックスを使わずに同じプログラムを記述することも可能です。しかし、このプログラムでは明らかに例題8−1のプログラムと比べて記述が大変です。

        Select Case Val(国語の生徒番号.Text)

            Case 1

                国語.Text = 国語の点数(1)

            Case 2

                国語.Text = 国語の点数(2)

            Case 3

                国語.Text = 国語の点数(3)

            Case 4

                国語.Text = 国語の点数(4)

            Case 5

                国語.Text = 国語の点数(5)

        End Select

 

 

8.3 配列変数のインデックスと例外処理

例題8−2 例外処理を使ったプログラム

 配列変数を使ったプログラムを記述する場合は、インデックスに不正な数字(負の数字や宣言時に指定した数字よりも大きな数字)を使うとエラーになる点に注意が必要です。

 例えば例題8−1で、生徒の番号に−1や、6などの数字を入力して計算ボタンをクリックして下さい。図のようなエラーパネルが表示され、プログラムが中断してしまいます。

 このようなエラーを回避するには、不正なインデックス値を使った計算が行われる可能性がある行を実行するまえに、条件分岐を使って不正な処理が行われないようにする必要があります。このような処理のことを例外処理と呼びます。例題8−1の8行目の前後に以下のプログラムを記述して下さい。

        If Val(国語の生徒番号.Text) >= 1 And Val(国語の生徒番号.Text) <= 5 Then

            'インデックスが1〜5の場合点数をテキストボックスに表示

            国語.Text = 国語の点数(Val(国語の生徒番号.Text))

        Else

            'インデックスが1〜5でない場合テキストボックスにエラーと表示

            国語.Text = "エラー"

        End If

 

 このプログラムでは、条件分岐によって、インデックス番号が1〜5であるかどうかを判定し、そうであれば点数を表示、そうでなければ「エラー」と表示します。このような例外処理を行うことで、生徒番号のテキストボックスにどのような数字を入力しても、エラーパネルが表示されプログラムが中断することを防ぐことができます。テキストボックスに1〜5以外の数字を入力し、エラーパネルが出なくなったことを確かめて下さい(下図)。

 

8.4 配列変数と繰り返し

 配列変数のインデックスは、0から順番に1ずつ増加するという、規則正しく並んだ数字を使います。従って、For文を使った繰り返し計算と相性が抜群です。

 

例題8−3 繰り返しを使った配列変数の使用例
 例題8−2で、生徒全員の合計点と平均点を計算するプログラムを配列変数と繰り返しを使って記述します。

 1.コントロールの配置とプロパティの設定

 例題8−1のフォームの下にラベルを2つ、テキストボックスを2つ追加し、それぞれのプロパティを以下のように設定し、図のようなフォームを作成して下さい。

 

オブジェクト

プロパティ

設定値

テキストボックス

(name)

左から「国語の合計点」、「国語の平均点」

Text

すべて空白に設定

 

 

 

2. イベントハンドラを作成する

 例題8−2のプログラムの後ろに、以下のプログラムを追加してください。

   1行目:For文で使うカウンタ変数「i」と、合計点数を計算する変数「合計点」を宣言する。

2行目:変数合計点を初期化する。

3〜5行目:繰り返しを使って、国語の点数(1)〜国語の点数(5)の合計を計算し、変数「合計点」に格納する。

6,7行目:結果をテキストボックスに表示する。平均点は合計点を人数の5で割る。

3.プログラムの実行と確認

プログラムを実行し、正しく動作することを確認して下さい(下図)。また、5人の国語の点数の数字を変更してもプログラムが正しく動作することを確認して下さい。

 同じプログラムを繰り返しを使わなかった場合、合計点の計算部分は

国語の合計点.Text = 国語の点数(1) + 国語の点数(2) + 国語の点数(3) + 国語の点数(4) + 国語の点数(5)

 と記述すればOKです。一見すると通常の変数を使った場合のほうが1行で記述できるので良さそうに見えるかもしれませんが、繰り返しを使わない場合のプログラムは、合計得点の計算部分の行が非常に長くなってしまい、記述が大変になる傾向があります。上記の例の場合生徒の数が5人程度なので、まだ記述することは可能ですが、もし、生徒の数が1000人、10000人のように多くなった場合は、計算式を記述することすら困難になってしまいます。

 

質問のメールなどは、sigesada@edu.i.hosei.ac.jpまでお願いします。

授業の資料の最新版はhttp://www.edu.i.hosei.ac.jp/~sigesada/にあります。