今日の人気記事

  1. continue文 - ループをスキップ
  2. エスケープシーケンス - 特殊文字
  3. 条件演算子(3項演算子)「? :」
  4. int main(void) - プログラムの基本
  5. 自然対数の底(ネイピア数)を計算する

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文の処理の流れをみてみましょう。

  1. 初期化:変数「i」に数値「0」を代入し、初期化。
  2. 条件式:変数「i」の値が10より小さい場合は真、偽であれば繰り返し処理は終了。
  3. 処理:「Hello! 数値」の出力。
  4. カウンタ変数の更新:変数「i」に1をプラス。
  5. 条件式が真であれば、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文 - 入れ子(ネスト)多階層の繰り返し処理」をみていきます。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. int main(void) - プログラムの基本
  3. continue文 - ループをスキップ
  4. 変数の値を出力 - printf 関数
  5. 条件演算子(3項演算子)「? :」
  6. while文 - 繰り返し処理
  7. エスケープシーケンス - 特殊文字
  8. else if文 - 複数の条件式 - 条件分岐
  9. 関数のプロトタイプ宣言
  10. (前置・後置)インクリメント演算子, ++

関連記事(一部広告含む)