while、do-while
メニューを表示するにはスワイプしてください
センサーからのデータ読み取り、パスワード入力の試行、文章内の単語数のカウントなど、特定の作業を繰り返し実行する必要がある場面を想像してください。このような場合にループが活用されます。
ループを使うことで、特定のコードブロックを何度も(数十回、数百回、あるいは数千回でも)実行できます。ループの概念を理解することはプログラミングにおいて非常に重要です。本コースでは、基本的なループである while ループ、do-while ループ、for ループについて解説します。
Whileループ
このループは、特定の条件が満たされている限り繰り返し実行されます。条件が満たされなくなると、ループは終了します。
main.c
123while (condition) { // Loop body }
ループの基本的な用途は、繰り返し回数を表示すること。
Main.c
1234567891011121314#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }
このループを停止するには、終了条件が不可欠。簡単な方法としては、カウンターを使ってループの実行回数を管理する。
反復処理は、ループ内の1回のサイクルを指します。したがって、ループがコードブロックを10回実行した場合、10回の反復処理が完了したことになります。
iterations++;の行は重要であり、各ループごとにカウンタ(int iterations)をインクリメントします。このカウンタがループ終了の条件を設定します。
ループを抜ける条件を設定することが不可欠です。これを怠ると、無限ループになります。
Main.c
12345678910111213141516#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; int i = 0; // Index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // `i = i + 1` } return 0; }
式 array[i] に注目。
ここで、変数 i は array[] の要素のインデックスを示す。
各サイクルごとに、変数 i は 1 ずつ増加する。つまり、各サイクルで式 array[i] は次の配列要素にアクセスすることになる。
do-while ループと while ループの主な違いは、前者は条件が最初に偽であっても、必ず少なくとも1回は実行される点。
main.c
123do { // Do something } while (condition);
この種類のループは、基本的なユーザーインターフェースを作成する際に便利です。例えば、パスワードの入力を求める場合、入力が有効になるまで繰り返し尋ねることができます。do-while形式のループは、プロンプトを少なくとも一度は表示する必要がある場合に最適であり、whileループは事前条件が満たされた場合のみ実行されます。
Main.c
123456789101112#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください