Cでループを操作する方法

C for、while、do-whileループの概要

Cは、ループを実行する3つの方法を提供します。forループwhileループそしてwhileループを実行します。それらはすべてあなたが繰り返すことを可能にします配列、ただしいくつかの違いがあります。それらを詳しく見てみましょう。

forループ

ループを実行する最初の、そしておそらく最も一般的な方法は、forループ

を使用してforキーワードを定義できますルールループの前に、繰り返し実行されるブロックを提供します。

このような:

for (int i = 0; i <= 10; i++) {
  /* instructions to be repeated */
}

ザ・(int i = 0; i <= 10; i++)ブロックには、ループの詳細の3つの部分が含まれています。

  • 初期状態(int i = 0
  • テスト(i <= 10
  • 増分(i++

最初にループ変数を定義します。この場合はiiと一緒にループに使用される一般的な変数名ですjネストされたループ(別のループ内のループ)の場合。それは単なる慣習です。

変数は0の値で初期化され、最初の反復が実行されます。次に、インクリメント部分が言うようにインクリメントされます(i++この場合、1)ずつ増加し、数値10に到達するまですべてのサイクルが繰り返されます。

ループメインブロック内で変数にアクセスできますi私たちがどの反復であるかを知るために。このプログラムは印刷する必要があります0 1 2 3 4 5 5 6 7 8 9 10

for (int i = 0; i <= 10; i++) {
  /* instructions to be repeated */
  printf("%u ", i);
}

ループは、次のように、大きい数値から開始して、小さい数値に進むこともできます。

for (int i = 10; i > 0; i--) {
  /* instructions to be repeated */
}

ループ変数を2または別の値でインクリメントすることもできます。

for (int i = 0; i < 1000; i = i + 30) {
  /* instructions to be repeated */
}

whileループ

whileループ書くよりも簡単ですforループは、あなたの側でもう少し作業が必要になるためです。

ループの開始時にすべてのループデータを事前に定義する代わりに、forループ、使用while状態をチェックするだけです:

while (i < 10) {

}

これは、iはすでに定義されており、値で初期化されています。

そして、このループは無限ループインクリメントしない限りiループ内のある時点で変数。無限ループはプログラムをブロックするので悪いです、他に何も起こり得ません。

これは、「正しい」whileループに必要なものです。

int i = 0;

while (i < 10) { /* do something */

i++; }

これには1つの例外があり、1分後に表示されます。前に紹介させてくださいdo while

whileループを実行します

whileループは素晴らしいですが、特定のことを行う必要がある場合があります。それは、常にブロックを実行してから、多分繰り返す。

これは、do whileキーワード、非常によく似た方法でwhileループしますが、わずかに異なります:

int i = 0;

do { /* do something */

i++; } while (i < 10);

を含むブロック/* do something */コメントは、下部の条件チェックに関係なく、常に少なくとも1回は実行されます。

その後、iが10未満の場合、ブロックを繰り返します。

を使用してループから抜け出すbreak

すべてでCループループに設定された条件に関係なく、任意の時点ですぐにループから抜け出す方法があります。

これは、breakキーワード。

これは多くの場合に役立ちます。次に、変数の値を確認することをお勧めします。

for (int i = 0; i <= 10; i++) {
  if (i == 4 && someVariable == 10) {
    break;
  }
}

ループから抜け出すためのこのオプションがあることは、whileループ(およびdo whileまた)、条件が発生したときに終了する一見無限ループを作成できるため、ループブロック内でこれを定義します。

int i = 0;
while (1) {
  /* do something */

i++; if (i == 10) break; }

この種のループがCにあるのはかなり一般的です。

私の無料ダウンロードCハンドブック


その他のclangチュートリアル: