ループ文とは
ループ文は、ある処理を繰り返し行いたいときに使います。
C言語のループ文には、for文とwhile文があり構文は以下になります。
for(変数の初期化; 条件式; 処理) {
処理;
}
while(条件式) {
処理;
}
while文は、for文の条件式のみバージョンみたいなものです。
基本的なfor文
以下のコードを実行してみましょう。
#include <stdio.h>
int main() {
int i;
for(i=0; i<10; i++) {
printf("%d回目\n", i);
}
return 0;
}
出力は以下になります。
0回目
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
for文は、条件式が真の間ループし続けます。
先ほどのコードの場合、以下のような処理をします。
for(
i=0; // iに0を代入
i<10; // iが10未満の間ループする
i++; // 各ループが終わった後に iをインクリメントする
) {
printf("%d回目\n", i); // iを出力する
}
また、for文の括弧の中は省略することもでき、以下のコードは先ほどのコードと同じ動作をします。
#include <stdio.h>
int main() {
int i;
i = 0;
for(; i<10; ) {
printf("%d回目\n", i);
i++;
}
return 0;
}
また、この場合は以下のようにwhile文に置き換えることもできます。
#include <stdio.h>
int main() {
int i;
i = 0;
while(i<10) {
printf("%d回目\n", i);
i++;
}
return 0;
}
break文
break文は、ループ文を途中で終わらせたいときに使います。
先ほどのコードは、breakを使用して、以下のように書き換えることができます。
1 #include <stdio.h>
2
3 int main() {
4 int i;
5 i = 0;
6
7 while(1) {
8 printf("%d回目\n", i);
9 i++;
10 if(i==10) {
11 break;
12 }
13 }
14
15 return 0;
16 }
ループ文は、条件式が真の間ループするので、7行目のように 1 を入れると、永遠にループします。
10行目でif文を使用しています。
ここでは、i が 10 だったら break を実行します。
なので、この出力は先ほどと同じで以下になります。
% ./a.out
0回目
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
continue文
continue文は、ループ文内のcontinue以下の処理をせずに、次のループへ進むという動作をします。
以下のコードを実行してみましょう。
#include <stdio.h>
int main() {
int i;
i = 0;
for(i=0; i<10; i++) {
printf("continue前 %d回目\n", i);
continue;
printf("continue後 %d回目\n", i);
}
return 0;
}
以下が出力結果になります。
continue前 0回目
continue前 1回目
continue前 2回目
continue前 3回目
continue前 4回目
continue前 5回目
continue前 6回目
continue前 7回目
continue前 8回目
continue前 9回目
continueの前にあるprintf関数は実行されますが、後にあるprintf関数は実行されません。
0件のコメント