学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

C++プログラミング入門その6 for文を使用したプログラム1

<<前  [TOP]  次>>


Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


ForTest1.cpp 直

#include <iostream>

void main() {

	int i;

	for ( i=0; i<10; i=i+1 ) {


		std::cout << "こんにちは" << std::endl;
	}
}



このサンプルプログラムでは、「for文」とよれる構文を使用しています。
与えられた条件になるまで繰り返しの処理を行います。

for ( 初期条件; 繰り返し条件; 繰り返し実行文) {

     実行文;

}



初期条件は、繰り返し処理が行われる前に読み込まれます。
ループに入る前の最初の一回だけ処理される条件になります。
もちろん、初期条件はなくても良いという場合は、空白でもかまいません。


例えば、すべてを空白にする記述もできます。

for ( ; ; ) {}

ただし、気をつけなければならないのは、この記述は無限ループになってしまうということです。
あえて、無限ループにする場合もあるのですが、今回はそのことにふれません。
まずは、条件をきちんと記述できるようにfor文をマスターしてください。


繰り返し条件では、for文内の処理が終わるたびに読み込まれ、この条件に当てはまっていればまたループに入ります。
この条件をきちんと考えないと、無限ループになってしまったりして思わぬエラーが出ますので気をつけてください。


最後の繰り返し実行文は、for文内の処理が終わり、繰り返し条件が処理される前に読み込まれます。


では、実際のプログラムを見ながら流れを見ていきましょう。

  • まず、初期条件の i=0 が処理され、変数 i の値は0になります。
  • 次に繰り返し条件の i<10 が処理され、変数 i の値が、条件の範囲内に入っていますのでfor文のループに入ります。
  • std::cout文が処理され画面に「こんにちは」と出力されます。
  • 繰り返し実行文 i=i+1 が読み込まれ、変数 i の値は 1になります。この記述についてはこの後もう少し詳しく説明します。
  • 変数 i の値は 1になり、繰り返し条件 i<10 と比べられ、まだ条件の範囲内なのでループに入ります。
  • このループが繰り返され、変数 i の値が10になった時点でfor文のループが終了します。
  • 結果、「こんにちは」が画面に10個出力されます。


    最後に i=i+1 の記述について説明します。
    左辺の変数 i は新しい値の i になります。
    右辺の変数 i は今までの値の i を指しています。


    この式は次のようにも書き換えられます。
  • i += 1;
  • i++;


    どちらの記述も同じ処理をします。


    i++ は インクリメントといい、読み込まれると、変数 i に 1を足します。


    それとは逆に、「i--」とすれば、読み込まれると、変数 i から 1を引いていきます。
    デクリメントといいます。


    では、サンプルプログラムをビルドしてデバッグしてみましょう。
    「こんにちは」 と画面に10個表示されます。





    Visual Studioで新規プロジェクトを作り、次のcppファイルを作成して下さい。


    ForTest2.cpp 直

    #include <iostream>
    
    void main() {
    
    	int i;
    
    	for ( i=1; i<=20; i=i+1 ) {
    
    		int a = i*11;
    
    		if ( a >=200 ) {
    
    			break;
    		}
    
    		std::cout << a <<  std::endl;
    		
            }
    }
    



    11の倍数で1以上200以下のものを全て表示するプログラムです。
    break文を使っています。

    for ( 初期条件; 繰り返し条件; 繰り返し実行文) {
    
         実行文;
         break;
    
    }
    



    for文の中で、break が読み込まれると、そこでループから強制的に抜けます。


    このサンプルプログラムでは、11に 1,2・・・と順番にかけていき、std::cout文でその値を出力していきます。
    if文で、「a >=200」の条件に当てはまると、breakが読み込まれ、ループが終了しプログラムも終了します。


    では、サンプルプログラムをビルドしてデバッグしてみましょう。
    「11・22・33・44 ・・・198」と画面に表示されます。





    <<前  [TOP]  次>>