Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ while、do-while | 制御文
C基礎

bookwhile、do-while

メニューを表示するにはスワイプしてください

センサーからのデータ読み取り、パスワード入力の試行、文章内の単語数のカウントなど、特定の作業を繰り返し実行する必要がある場面を想像してください。このような場合にループが活用されます。

ループを使うことで、特定のコードブロックを何度も(数十回、数百回、あるいは数千回でも)実行できます。ループの概念を理解することはプログラミングにおいて非常に重要です。本コースでは、基本的なループである while ループ、do-while ループ、for ループについて解説します。

Whileループ

このループは、特定の条件が満たされている限り繰り返し実行されます。条件が満たされなくなると、ループは終了します。

main.c

main.c

copy
123
while (condition) { // Loop body }

ループの基本的な用途は、繰り返し回数を表示すること。

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }

このループを停止するには、終了条件が不可欠。簡単な方法としては、カウンターを使ってループの実行回数を管理する。

Note
注記

反復処理は、ループ内の1回のサイクルを指します。したがって、ループがコードブロックを10回実行した場合、10回の反復処理が完了したことになります。

iterations++;の行は重要であり、各ループごとにカウンタ(int iterations)をインクリメントします。このカウンタがループ終了の条件を設定します。

Note
注記

ループを抜ける条件を設定することが不可欠です。これを怠ると、無限ループになります。

Main.c

Main.c

copy
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] に注目。 ここで、変数 iarray[] の要素のインデックスを示す。

各サイクルごとに、変数 i1 ずつ増加する。つまり、各サイクルで式 array[i] は次の配列要素にアクセスすることになる。

do-while ループと while ループの主な違いは、前者は条件が最初に偽であっても、必ず少なくとも1回は実行される点。

main.c

main.c

copy
123
do { // Do something } while (condition);

この種類のループは、基本的なユーザーインターフェースを作成する際に便利です。例えば、パスワードの入力を求める場合、入力が有効になるまで繰り返し尋ねることができます。do-while形式のループは、プロンプトを少なくとも一度は表示する必要がある場合に最適であり、whileループは事前条件が満たされた場合のみ実行されます。

Main.c

Main.c

copy
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; }
question mark

6回目の反復時のxの値は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  5
some-alt