C言語の勉強5 ループ

最終更新:2006/07/02

トップページへ戻る
Page1 Page2 Page3 Page4 Page5
ページ目次
  1. for文
  2. while文
  3. do文
  4. ループを制御する(break文, continue文)


1. for文

      指定した回数だけ処理を繰り返す場合に用います。

      文法の説明

        for (初期状態; 終了条件; 継続処理) {
            処理;
        }

      サンプル 1

/*
    for文 (サンプル1)
*/

#include <stdio.h>

int main(void)
{
    int i, j;

    for(i = 1; i <= 10; i++) {
        for(j = 1;j <= i; j++) {
            printf("△");
        }
        printf("\n");
    }
    return (0);
}
      実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
      サンプル 2

/*
    for文 (サンプル2)
*/

#include <stdio.h>

int main(void)
{
    int i, j;

    for(i = 10; i >= 0; i--) {
        for(j = 1;j <= i; j++) {
            printf("△");
        }
        printf("\n");
    }
    return (0);
}
      実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
      サンプル 3

/*
    for文 (サンプル3)
*/

#include <stdio.h>

int main(void)
{
    int i, j;
    int keisan = 0;
    for(i = 1; i <= 9; i++) {
        for(j = 1;j <= 9; j++) {
            keisan = i * j;
              if (1 >= keisan || keisan <= 9) {
                  printf("  %d", keisan);
              } else {
                  printf(" %d", keisan);
             }
        }
        printf("\n");
    }
    return (0);
}
      実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81


2. while文


      ある条件が真である間、ループを繰り返します。

      文法の説明

      while (条件式) {
          処理;
      }

      サンプル 1


/*
    while文 (サンプル1)
*/

#include <stdio.h>

int main(void)
{
    int i = 1, j = 1;
    while (i <= 10) {
        j = 1;
        while (j <= i) {
            printf("△");
            j++;
        }
        printf("\n");
        i++;
    }
    return (0);
}
      実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
      サンプル 2

/*
    while文 (サンプル2)
*/

#include <stdio.h>

int main(void)
{
    int i = 10, j = 1;
    while (i >= 0) {
        j = 1;
        while (j <= i) {
            printf("△");
            j++;
        }
        printf("\n");
        i--;
    }
    return (0);
}
      実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
      サンプル 3

/*
    while文 (サンプル3)
*/

#include <stdio.h>

int main(void)
{
    int i = 1, j = 1, keisan = 0;
    while (i <= 9) {
        j = 1;
        while (j <= 9) {
            keisan = i * j;
            if (1 >= keisan || keisan <= 9) {
                printf("  %d", keisan);
            } else {
                printf(" %d", keisan);
            }
            j++;
        }
        printf("\n");
        i++;
    }
    return (0);
}
      実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81


3. do文

      do文は条件式の評価がループの最後に行われる為、最初の1回が必ず実行されます。

      文法の説明

      do {
          処理;
      } while (条件式);

      サンプル1

/*
    do文 (サンプル1)
*/

#include <stdio.h>

int main(void)
{
    int i = 1, j = 1;
    do {
        j = 1;
        do {
            printf("△");
            j++;
        } while (j <= i);
        printf("\n");
        i++;
    } while (i <= 10);

    return (0);
}
      実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
      サンプル2

/*
    do文 (サンプル2)
*/

#include <stdio.h>

int main(void)
{
    int i = 10, j = 1;
    do {
        j = 1;
        do {
            printf("△");
            j++;
        } while (j <= i);
        printf("\n");
        i--;
    }  while (i > 0);

    return (0);
}
      実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
      サンプル3

/*
    do文 (サンプル3)
*/

#include <stdio.h>

int main(void)
{
    int i = 1, j = 1, keisan = 0;
    do {
        j = 1;
        do {
            keisan = i * j;
            if (1 >= keisan || keisan <= 9) {
                printf("  %d", keisan);
            } else {
                printf(" %d", keisan);
            }
            j++;
        } while (j <= 9);
        printf("\n");
        i++;
    } while (i <= 9);

    return (0);
}
      実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81


4. ループを制御する(break文, continue文)

      break文が実行されると、ループが終了していなくてもループから抜けます。
      continue文が実行されると、いったんループの先頭に戻ります。

      サンプル1 (break)

/*
    break文
*/

#include <stdio.h>

int main(void)
{
    int i, j;
    for(j = 1; j <= 10; j++) {
        for(i = 1; j <= 10; i++) {
            printf("%d ", i);
            if(i == j) {
                printf("\n\n");
                break;
            }
        }
    }

    return (0);
}
      実行結果
1 

1 2 

1 2 3 

1 2 3 4 

1 2 3 4 5 

1 2 3 4 5 6 

1 2 3 4 5 6 7 

1 2 3 4 5 6 7 8 

1 2 3 4 5 6 7 8 9 

1 2 3 4 5 6 7 8 9 10 
      サンプル2 (continue)

/*
    continue文
*/

#include <stdio.h>

int main(void)
{
    int i;
    for(i = 1; i <= 10; i++) {
        if(i % 2 == 0) {
            continue;
        } else {
            printf("%d ", i);
        }
    }

    return (0);
}
      実行結果
1 3 5 7 9 
トップページへ戻る
Page1 Page2 Page3 Page4 Page5
Copyright© 2005- Naoyuki Sano. All rights reserved.