- 追加された行はこの色です。
- 削除された行はこの色です。
*for文のおさらい [#k5006dd6]
繰り返しの回数が決まっている繰り返しに用いられるfor文は、次のような形をしていました。
#geshi(c){{
for (初期化; 繰り返し条件; 更新処理) {
処理
}
}}
for文は、次のように実行されるものでした。
+「初期化」を行う
+「繰り返し条件」を評価する
--条件を満たしていれば、波括弧 { } の中の「処理」を行い、最後に「更新処理」を行う
--そうでなければ、for文の次の処理に移る
+2へ戻る
たとえば、1から10までの値を繰り返し出力するプログラムは、次のようになります(プログラム1)。
#geshi(c){{
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n");
}
}}
*繰り返し処理のフローチャート [#wcf7aaa2]
1から10までの値を繰り返し出力するプログラムを、フローチャートで描くと、次のようになります。
#ref(./while1.png,12.5%)
#ref(./while1.png,50%)
これをC言語風にすると、次のようになります。
#ref(./while2.png,12.5%)
#ref(./while2.png,50%)
if文のところで勉強したように、大小関係を比較する関係演算の結果はint型の値であり、結果が0のときは条件を満たさない、0以外のときは条件を満たすと判定されます。
*while文 [#l6d6c1fa]
while文は、次の形をしています。
#geshi(c){{
while (繰り返し条件) {
処理
}
}}
while文は、次のように実行されます。
+「繰り返し条件」を評価する
--条件を満たしていれば、波括弧 { } の中の「処理」を行う
--そうでなければ、while文の次の処理に移る
+1へ戻る
while文を使って、1から10までの値を繰り返し出力するプログラムを作ると、次のようになります(プログラム2)。
#geshi(c){{
int i = 1;
while (i <= 10) {
printf("%d\n", i);
i++;
}
}}
このプログラムを、上のプログラム1と比べてみましょう。
繰り返し条件は同じで、カウント変数の初期化はwhile文の前に、更新処理はwhile文の波括弧 { } の中の最後にあることがわかります。
つまり、for文をwhile文に直すと、次のようになります。
#geshi(c){{
初期化;
while (繰り返し条件) {
処理
更新処理;
}
}}
**演習1 [#ya13bc4b]
プログラム1とプログラム2を作成し、実行結果を確認せよ。
*回数が決まっていない繰り返し [#yee53b8a]
*繰り返し条件の後置判定 [#o50dd1fe]
#geshi(c){{
do {
処理
} while (繰り返し条件)
}}
#geshi(c){{
int i = 1;
do {
printf("%d\n", i);
i++;
} while (i <= 10)
}}
*continue文 [#ad0abf43]
continue文は、繰り返し処理の残りの部分を飛ばします。
多くの場合、continue文はif文と組み合わせて使います。
#geshi(c){{
int i = 1;
while (i <= 10) {
if (i % 2 == 0) { continue; }
printf("%d\n", i);
i++;
}
}}
*break文 [#ode00ed6]