for文 - 繰り返し処理
当ページのリンクには広告が含まれています。
スポンサーリンク
繰り返し処理を行う for文を紹介します。
for文
for文は同じ処理を繰り返し繰り返し何度も実行したい!といった場合に利用します。
for(初期化;条件式;カウンタ変数の更新) 処理;
for文は、このように「初期化」「条件式」「カウンタ変数の更新」を使って記述します。条件式が真(true)であれば、ずーっと「処理」を繰り返し行います。
ちょっとわかりにくいので具体例をみてみましょう。
#include <stdio.h> int main(void){ /* カウンタ変数の宣言 */ int i; /* 繰り返し処理 */ for(i=0;i<10;i++) printf("Hello! %d\n", i); return 0; }
※ カウンタ変数には、慣習として「i」「j」「k」が使用されます。
for文の処理の流れをみてみましょう。
- 初期化:変数「i」に数値「0」を代入し、初期化。
- 条件式:変数「i」の値が10より小さい場合は真、偽であれば繰り返し処理は終了。
- 処理:「Hello! 数値」の出力。
- カウンタ変数の更新:変数「i」に1をプラス。
- 条件式が真であれば、2→3→4 を繰り返し実行。
実際に実行してみましょう。
Hello! 0 Hello! 1 Hello! 2 Hello! 3 Hello! 4 Hello! 5 Hello! 6 Hello! 7 Hello! 8 Hello! 9
このような実行結果になります。カウンタ変数が更新されていること、条件式が真の間、処理が繰り返し行われていることが分かります。
処理が複数行ある場合は波括弧「{」と「}」の間に「処理」を記述します。
for(初期化;条件式;反復文) { 処理1; 処理2; … }
それでは他のサンプルプログラムをみてみましょう。
サンプルプログラム
for文を1〜100までの数値を出力、またその合計を計算するプログラムです。
#include <stdio.h> int main(void){ /* カウンタ変数の宣言 */ int i; /* 和を格納する変数 */ int sum = 0; /* 繰り返し処理 */ for(i=1;i<=100;++i) { printf("%d ", i); sum += i; } printf("\n合計 = %d\n", sum); return 0; }
実行結果です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 合計 = 5050
このように適切に計算されていますね。これだけの演算を十数行のプログラムで、計算することができます。
次は複数の for文を使った「for文 - 入れ子(ネスト)多階層の繰り返し処理」をみていきます。