forループへの道

 本気で脇道へ 〜初心者用迂回コース〜

  1. 「*」を続けて10個表示するプログラム
    /* アステリスク「*」を続けて10個表示する */
    #include <stdio.h>	/* printfを使うためのおまじない */
    
    main()
    {
    	printf("**********");	/* printfは文字列を表示する関数 */
    }				/* 文字列は " で囲む */
    /* end of aster1.c */
    
  2. 「*」を1個ずつ10個表示するプログラム
    /* アステリスク「*」を続けて10個表示する */
    #include <stdio.h>
    
    main()
    {
    	printf("*");	/* 表示したい数だけprintfを並べる */
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    	printf("*");
    }
    /* end of aster2.c */
    

  3. ループ構造(for)を使ってみる
    /* アステリスク「*」を10個表示する:ループ版 */
    #include <stdio.h>
    
    main()
    {
    	int	i;	/* 回数を数えるカウンタ */
    
    	for( i = 0; i < 10; i++ ) /* i が 0 から 9 までの 10 回繰り返す */
    		printf("*");
    }
    /* end of aster3.c */
    

 九九の1の段の表示に戻って

  1. 繰り返しの構造を見つける為に、 の部分を変更し、1個ずつ数字を表示してみる。
    /* 1から9までの整数を表示する(forループ版への準備1) */
    #include <stdio.h>
    
    main()
    {
    	int	i;	/* 今は未だ使っていませんが... */
           
    	printf("  1");
    	printf("  2");
    	printf("  3");
    	printf("  4");
    	printf("  5");
    	printf("  6");
    	printf("  7");
    	printf("  8");
    	printf("  9");
    	printf("\n");	/* 最後に改行を表示 */
    }
    /* end of q11_1.c */
    

  2. printfで整数値を表示する
    /* 1から9までの整数を表示する(forループ版への準備2) */
    #include <stdio.h>
    
    main()
    {
    	int	i;	/* 今は未だ使っていませんが... */
           
    	printf("  %d", 1);	/* %d で2番目の整数の引数を10進数として画面に表示 */
    	printf("  %d", 2);	/* %d 等の詳細はこちら */
    	printf("  %d", 3);
    	printf("  %d", 4);
    	printf("  %d", 5);
    	printf("  %d", 6);
    	printf("  %d", 7);
    	printf("  %d", 8);
    	printf("  %d", 9);
    	printf("\n");	/* 最後に改行を表示 */
    }
    /* end of q11_2.c */
    

  3. 変数の値として表示する整数値をprintfに渡す
    /* 1から9までの整数を表示する(forループ版への準備3) */
    #include <stdio.h>
    
    main()
    {
    	int	i;	/* いよいよ使います! */
           
    	i = 1;	/* 最初は1にしておいて... */
    	printf("  %d", i);	/* 変数 i の値を10進数として画面に表示 */
    	i = i + 1;	/* 一つずつ増やしながら... */
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	i = i + 1;
    	printf("  %d", i);
    	printf("\n");	/* 最後に改行を表示 */
    }
    /* end of q11_3.c */
    

  4. forループでの実現
    /* 1から9までの整数を表示する(forループ版) */
    #include <stdio.h>
    
    main()
    {
    	int	i;
    	
    	for( i = 1; i < 10; i++ )	/* i が 1 から 9 まで繰り返す */
    		printf("  %d", i);	/* 変数 i の値を10進数として画面に表示 */
    	printf("\n");	/* 最後に改行を表示 */
    }
    /* end of q11_for.c */
    

  5. whileループでの実現
    /* 1から9までの整数を表示する(whileループ版) */
    #include <stdio.h>
    
    main()
    {
    	int	i;
    	
    	i = 1;
    	while( i < 10 )	/* i が 10 より小さい間繰り返す */
    	{
    		printf("  %d", i);	/* 変数 i の値を10進数として画面に表示 */
    		i = i + 1;
    	}
    	printf("\n");	/* 最後に改行を表示 */
    }
    /* end of q11_while.c */
    

練習問題

  1. q11_while.cwhile の繰り返し部分の2行(正確には2文)が { } で囲まれているが、 もし囲まなかったらどうなるか?

  2. q11_for.cfor の後や、q11_while.cwhile の後で、 変数 i の値はそれぞれいくつになっていると思うか? q11_3.c の場合と比較せよ。
  3. q11_while.cwhile の繰り返し部分を1行(正確には1文)にして、 { } で囲む必要をなくしてみよ。

閉じる
Copyright © 2006 DEGUCHI Hiroshi, All Rights Reserved.