【C言語】 繰り返し構造 for文 & while文 & break

決められた回数、一連の処理を行う構造
 繰り返し構造は決められた回数または条件を満たすまで、一連の処理を行う構造を言います。
for 文​
for 文とは初期値から繰り返し条件(最終値)増加分の回数分だけ繰り返し実行します。

    • for(初期値;繰り返し条件;増加分)

      for(a=1;a<10;a++)​
        処理1
        処理2

      ※ for文下の一行文の処理1を行い、処理2は行わない。

      for(a=1;a<10;a++)​
        {​
            処理1
        処理2
        }​

      ※ 処理が複数ある場合、{}で囲む
        処理1・処理2は行う。

《 test020.c 》
   
          ・ {}なし
      

#include <stdio.h>
int main() {
int a;
for(a=1;a<10;a++)
printf("%3d ",a);
}

 
・ {}あり
 

#include <stdio.h>
int main() {
int a;
for(a=1;a<10;a++)
      {
      printf("%3d ",a);
      }
}

○ 結果
             aの1から、


・ {}あり

 

for文 2重ループ
  
for(初期値;繰り返し条件;増加分)
           {
           for(初期値;繰り返し条件;増加分)
           処理
           }   
《 test021.c 》
#include <stdio.h>
int main() {
int a,b;
for(b=1;b<10;b++)
   {
   for(a=1;a<10;a++)
   printf("%3d ",a*b);
   printf("\n"); 
   }
}
  
○ 結果

九九です。
bに1が入り
6,7行目を繰り返し一の段が終了
8行目で改行
4行目に移動し、bに2が入りこれを繰り返して九九完成
  


  

while 文​
 
    while 文とはまず、条件が満たされているか判断し、満たされていればそこで終了条件が満たされて無ければ、何度も同じ動作を繰り返し条件が満たされるまで続ける。無限ループになる可能性があります。
 

  • while(条件式);
    {​
    処理;​
    }​
      

《 test022.c 》

#include <stdio.h>
int main() {
int a=0,b=2;
       while (b>a){
       printf(" a = %d \n",a,b);
       a++;
       }
}

結果
 
aの0から、aに1ずつ増加してbが2以上なったら、繰り返しを止める。

   

do ~ while

  
do ~ while 文とはまず、処理を一度行ってから、条件が満たされるまで何度も同じ動作を繰り返す

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

《 test023.c 》

#include <stdio.h>
int main() {
int a=0,b=2;
    do{
    printf(" a=%d \n",a);
    a++;
    }
while(a!=5);
}

結果
 
   5・6行目の処理を行ってから、条件が満たされるまで何度も同じ動作を繰り返す

     

break  と continue
for文やwhile文などの繰り返し処理で繰り返しを途中で中断できます。
break は中断後 ​一番近いブロックの終わりに移動します。

 

《 test024.c 》

#include <stdio.h> 
int main(){ 
int a,b=1;
for(a=1;a<10; a++)
   {
   if(a+b == 5)
   break;
   printf("break;%d+%d=%d\n",a,b,a+b);
   }
}

結果
  
a+b  が 5になったら、ループを抜けます。

 

continue

  
continue は中断後 次の回の最初に移動します。

 

《 test025.c 》

#include <stdio.h>
int main(){
int a,b=1;
  for(a=1;a<10; a++)
  {
  if(a+b == 5)
  continue;
  printf("%d+%d=%d\n",a,b,a+b);
  }
}

   
結果
   
a+b  が 5になったら、最初に戻ります。だから、5は表示しません。

 

まとめ

    
パスワードで3回失敗したら、一時中止するときにbreakなどが使えます。

目次