No.16 繰り返し処理(2)[while文]
今回は、C言語の繰り返し処理(while文)について解説します。
前回の記事をまだ見ていない方は、下記のリンクからぜひ見てください。
前回の記事を見てからこの記事を見ると理解しやすいです。↓
また、わからない点があればぜひコメントお願いします。
わかりやすいように更新させていただきます。
while文とは?
C言語の while文は、ある条件が真である限り、繰り返し処理を実行するものです。
while文は for文と違い、繰り返し回数が事前にわからない場合や、ある条件が満たされるまで処理を続けたい場合に適しています。
while文の書き方
ここからは、while文の書き方について解説していきます。
while文は次のように書きます。
while (条件式) {
// 繰り返し実行したい処理
}
条件式 : この式が真(true)である限り、{ } 内の処理が繰り返し実行されます。
繰り返し実行したい処理 : 条件式が真である間、繰り返し実行したい処理を書きます。
break文 : 繰り返し処理を途中で中断したい場合は、break文を使用します。
例
while文を使った、繰り返し処理のプログラム例を紹介します。
while文で1から5を出力するプログラム。↓
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
printf("%d\n", i);
i++;
}
return 0;
}
このプログラムは、変数 i の値が5以下である間、i の値を出力し、i の値を1ずつ増やす処理を繰り返します。
出力結果は次のようになります。↓
1
2
3
4
5
while文の注意点
無限ループ: 条件式が常に真となるような場合、無限ループに陥ります。
変数の更新: 繰り返し処理の中で、条件式に影響を与える変数を更新する必要があります。そうでないと、無限ループになる可能性があります。
continue文
ここからは、繰り返し処理でよく使う continue文について解説していきます。
continue文とは?
continue文は、繰り返し処理(for文、while文、do-while文)の中で、現在の繰り返しを中断し、次の繰り返しに移るときに使います。
※do while文については後ほど解説します。
continue文の働き
continue文が実行されると、その後の処理をスキップし、次の繰り返しへとジャンプします。
繰り返し処理の先頭部分に戻り、条件式の評価から再び処理が開始されます。
break文との違い
break文: 繰り返し処理を完全に中断し、ループの外へ脱出します。
continue文: 現在の繰り返しだけを中断し、次の繰り返しへジャンプします。
例
1から5を出力するが3は出力しないプログラム。↓
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
if (i == 3) {
continue; // iが3のとき、次の繰り返しへ
}
printf("%d\n", i);
}
return 0;
}
このプログラムの出力は次のようになります。↓
1
2
4
5
i が3のとき、continue文によってprintf文がスキップされ、3が出力されずに次の繰り返しに移っています。
問題
1から10までの数を順番に出力する際、5の倍数の時は出力せずに、他の数を表示するプログラムを作成してください。
回答例
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i % 5 == 0) {
continue; // 5の倍数のとき、次の繰り返しへ
}
printf("%d\n", i);
}
return 0;
}
解説
この問題では、i が5の倍数のとき、continue文によってprintf文がスキップされ、その数が表示されずに次の数へと進みます。
今回は以上です。