8.C言語の制御構造(while,do文)
 1)do{..........}while();の構文

    while-do-while

  ・do{..........}while();の書式
   do
   {

     繰り返し条件が成立している間ループさせるプログラムを書きます。

   }while(条件式);

  <サンプル1>数字の1を10個コンソール出力させる。
   #include <stdio.h>
   void main(void)
   {
     int i,n;
     n=1;
     i=1;
     do
     {
       printf("%d",n);
       i++;
     }while(i<=10);
   }

  <サンプル2> 1+2+3+・・・+10=55の計算結果をコンソール出力させる。
   #include <stdio.h>
   void main(void)
   {
     int i,n;
     n=0;
     i=1;
     do
     {
       n=n+i;
       i++;
     }while(i<=10);
     printf("%d",n);
   }

  <サンプル3>コンソールからnの値を入力し、n!を求め結果をコンソール出力させる。
   #include <stdio.h>
   void main(void)
   {
     int i,n,a;
     a=1;
     scanf("%d",&n);
     i=n;
     do
     {
       a=a*i;
       i--;
     }while(i>=1);
     printf("%d",a);
   }

 2)do~whileによる多重ループ
   0~99までの数値を10個づつ区切ってコンソール出力させる。
 
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
   #include <stdio.h>
   void main(void)
   {
     int i,j,k;
     k=0;
     i=0;
     i=0;
     do
     {
       do
       {
         printf("%3d",k);
         k=k+1;
         j++;
       }while(j<10);
       printf("\n");
       i++;
     }while(i<10);
   }

  <課題1>変数kを使わないで同じことを行って下さい。
    <ヒント>printf("%3d",k);のkの部分を「10*i+j」にして考えてみる。

  <課題2>2重ループを使わずにif文を使って行ってください。
    <ヒント>iを10で割った余りが9になったときに改行してあげる。

  <課題3>下記の九九の計算表を2重ループを使って作ってください。
 
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 79 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

  <課題4>次の図形になるプログラムを作ってください。

 

 

 

①四角形 ②三角形1 ③三角形2
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
*
**
***
****
*****
******
*******
********
*********
**********
**********
*********
********
*******
******
*****
****
***
**
*
④三角形3 ⑤三角形4 ⑧ひし形
                  *
                * *
              * * *
            * * * *
          * * * * *
        * * * * * *
      * * * * * * *
    * * * * * * * *
  * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
  * * * * * * * * *
    * * * * * * * *
      * * * * * * *
        * * * * * *
          * * * * *
            * * * *
              * * *
                * *
                  *
        *        
      * * *      
    * * * * *    
  * * * * * * *  
* * * * * * * * *
  * * * * * * *  
    * * * * *    
      * * *      
        *        
⑥三角形5 ⑦三角形6  
*                  
* *                
* * *              
* * * *            
* * * * *          
* * * * * *        
* * * * * * *      
* * * * * * * *    
* * * * * * * * *  
* * * * * * * * * *
* * * * * * * * *  
* * * * * * * *    
* * * * * * *      
* * * * * *        
* * * * *          
* * * *            
* * *              
* *                
*                  
                  *
                * *
              * * *
            * * * *
          * * * * *
        * * * * * *
      * * * * * * *
    * * * * * * * *
  * * * * * * * * *
* * * * * * * * * *
  * * * * * * * * *
    * * * * * * * *
      * * * * * * *
        * * * * * *
          * * * * *
            * * * *
              * * *
                * *
                  *