第3講 for文の学習

第2話 for文とは? 


#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int w;
           
           w=0;
           w=w+1;
           w=w+2;
           w=w+3;
           w=w+4;
           w=w+5;
           w=w+6;
            w=w+7;
           w=w+8;
           w=w+9;
           w=w+10;

           label1->Text=w.ToString();

        }
  };
}

動きをトレース(コンピュータの動きを追うこと)してみましょう。
和のトレース
となって、確かに1+2+3+4+5+6+7+8+9+10の計算ができています。
しかし、このプログラムもコンピュータの特長を全く生かしていません。
同じようなものの繰り返しは人間がするものではなく、繰り返しはコンピュータにさせたいものです。

そこで、繰り返し処理であるfor文が登場するわけです。
for(i=1;i<11;i++){
   ・
   ・
   ・
}
は同じことを10回繰り返す命令です。
(i=1;i<11はiの範囲が1以上で11未満であることを示しています。
i++はi=i+1を略して書いたものです。
C言語の特徴は、省略した書き方ができることにあります。
今まで、
int w;
w=0;
のように書いてきましたが、
int w=0;
とまとめて書くこともできます。
最初の値を代入することを初期化といいますが、
変数の宣言と初期化を同時に行うこともできるのです。
i++はi=i+1ですから、iはひとつずつ増えることになります。
もちろん、i=i+1はi←i+1でした。

このfor文を使えば先のプログラムは、
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int i,w=0;

           for(i=1;i<
11;i++){
             w=w+i;
           }

           label1->Text=w.ToString();

        }
  };
}
となります。
for文の部分は、iが1から10まで変化しながら10回繰り返されることになります。
繰り返すので繰り返し処理といいます。
繰り返し処理は、for文以外に、while文、do...while文がありますが、
これは第6講で学ぶ予定にになっています。
iが1,2,3,・・・と変化しながらw=w+i; を10回繰り返すのですから、
結局先のトレースと同じ結果になります。
今回もトレースしてみましょう。
1回目
 i=1から
 w=w+iはw=w+1です。
 1回目の処理の終わりにi++すなわちi=i+1が実行されi←1+1から2に変わります。
2回目
 i=2ですから
 w=w+iはw=w+2です。
 2回目の処理の終わりにi++すなわちi=i+1が実行されi←2+1から3に変わります。
3回目
 i=3ですから
 w=w+iはw=w+3です。
 3回目の処理の終わりにi++すなわちi=i+1が実行されi←3+1から4に変わります。
4回目
 i=4ですから
 w=w+iはw=w+4です。
 4回目の処理の終わりにi++すなわちi=i+1が実行されi←4+1から5に変わります。
      ・
      ・
      ・

このプログラムはすっきりしましたし、これはコンピュータの利点を生かしています。
汎用性と普遍性のあるプログラムだからです。
例えば、11101と変更すれば、
1+2+3+・・・+100
の計算をさせることができます。
また、for(i=color="#0000ff">5;i<101;i++)と変更すれば、
5+6+7+・・・+100
の計算をさせることができます。

尚、
for(i=1;i<11;i++){
  w=w+i;
}
と{]の中が1文しかないときは、
for(i=1;i<11;i++)w=w+i;
と記述することもできます。
ですが、複数文のときは
for(条件式){
   A;
   B;
   C;

と記述しなければなりません。


それでは皆さん、
2+4+6+・・・+100を計算させるためには、
どのように変更したらよいでしょうか。





第1話へ 第3話へ

025


vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る