第4回資料

C言語応用
繰り返し
while文
 while文
while (式) 文 ;
式は0
式の評価
式は非0
文
Ex) while(a<10) a=a+1;
do ~ while 文
 do ~ while文
do 文 while (式) ;
式は0
文
式の評価
式は非0
Ex) do {
a=a+1;
} while(a<10) ;
for文
 for文
for (式1 ; 式2 ; 式3) 文 ;
式は0
式1
式2の評価
式は非0
式3
文
Ex) for (i=0;i<10;i++)printf(“%d\n”,i);
while文とfor文
 for文はwhile文に置き換えることができる
for ( 式1 ; 式2 ; 式3 ) 文
等価
式1 ;
while (式2){
文;
式3;
}
繰り返しの制御
 break文
break;
break文は、それを囲んでいる繰り返し文の実行を
停止し、繰り返しから強制的に脱出するもの。
Ex) for (i=0;i<10;i++)
if (a[i]==0)break;
繰り返しの制御
 無限ループ
while(1) {
・・・
};
for( ; ; ) {
・・・
};
do {
・・・
} while(1);
これらの中で、do文だけは、ループの最後までプ
ログラムを読まなければ、無限ループであること
が分からない。したがってプログラムの読みやす
さを考えると、while文かfor文を使うべき。
繰り返しの制御
 continue文
continue;
break文と対照的なものが、continue文である。
continue文は繰り返しの途中で、作業を中断し
て、強制的次の繰り返しを開始させる文である。
Ex) for (i=0;i<10;i++){
if (a[i]==0)continue;
printf(“%d\n”,a[i]);
a[i]=0;
}
多重の繰り返し
 九九の表
for(i = 1 ; i<=9 ; i++){
for(j = 1 ; j <=9 ; j++)
printf(“%3d”, i*j);
printf(“\n”);
}
出力結果
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
演習
 List4-1.cのプログラムを、for文で書き換えよ
 10000以下の2のべき乗の数(2,4,8,16,・・・)を順
に出力するプログラムを作成せよ。
 1000以下の素数を求めるプログラムを作成せよ