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

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

C++プログラミング入門その6 for文を使用したプログラム1(2020年3月更新)

<<前  [TOP]  次>>


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


【ForTest1.cpp】

#include <iostream>

int 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個表示されます。


    ForTest1.cpp実行結果
    ForTest1.cpp実行結果


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


    【ForTest2.cpp】

    #include <iostream>
    
    int 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」と画面に表示されます。


    ForTest2.cpp実行結果
    ForTest2.cpp実行結果


    <<前  [TOP]  次>>