ホームページ >バックエンド開発 >C#.Net チュートリアル >C言語のループ文の流れを変更するために使用できる文は何ですか?

C言語のループ文の流れを変更するために使用できる文は何ですか?

青灯夜游
青灯夜游オリジナル
2021-01-30 18:14:143941ブラウズ

C 言語でループ ステートメントの流れを変更するために使用できるステートメントは、break、 continue、および goto です。 Break ステートメントはループを終了し、ループ ステートメント全体の背後でコードを実行できます。Continue ステートメントはループ本体内の残りのステートメントをスキップして、次のループに強制的に入ることができます。

C言語のループ文の流れを変更するために使用できる文は何ですか?

このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

break キーワード

break キーワードを while ループおよび for ループで使用すると、ループが終了し、ループ ステートメント全体の背後にあるコードが実行されます。通常、break キーワードは、条件が満たされたときにループを抜け出すために if ステートメントと一緒に使用されます。

while ループを使用して、100 に 1 を加算した値を計算します。

#include <stdio.h>
int main(){
    int i=1, sum=0;
    while(1){  //循环条件为死循环
        sum+=i;
        i++;
        if(i>100) break;
   }
    printf("%d\n", sum);
    return 0;
}

実行結果:

5050

while ループ条件は 1 (無限ループ) です。 100回目のループを実行すると、iを計算した後のiの値は101となり、このときif文i>100の条件が成立し、break;文が実行されてループが終了します。

複数レベルのループでは、break ステートメントは 1 レベル外側にのみジャンプします。たとえば、4*4 の整数行列を出力します:

#include <stdio.h>
int main(){
    int i=1, j;
    while(1){  // 外层循环
        j=1;
        while(1){  // 内层循环
            printf("%-4d", i*j);
            j++;
            if(j>4) break;  //跳出内层循环
        }
        printf("\n");
        i++;
        if(i>4) break;  // 跳出外层循环
    }
    return 0;
}

演算結果:

1   2   3   4
2   4   6   8
3   6   9   12
4   8   12  16

j>4 が成立したら、break; を実行し、内側のループから抜け出し、外側のループは次のようになります。まだ実行されているため、i>4 が確立されるまで、外側のループから抜け出します。内側のループは合計 4 回実行され、外側のループは 1 回実行されます。

Continue ステートメント

Continue ステートメントの機能は、ループ本体内の残りのステートメントをスキップし、次のループに強制的に入ることです。 continue ステートメントは while ループと for ループでのみ使用され、多くの場合、条件が true かどうかを判断するために if 条件ステートメントと一緒に使用されます。

例を見てみましょう:

#include <stdio.h>
int main(){
    char c = 0;
    while(c!=&#39;\n&#39;){  //回车键结束循环
        c=getchar();
        if(c==&#39;4&#39; || c==&#39;5&#39;){  //按下的是数字键4或5
            continue;  //跳过当次循环,进入下次循环
        }
        putchar(c);
    }
    return 0;
}

実行結果:

0123456789↙
01236789

プログラムが while に遭遇すると、変数 c の値は '\0' になり、ループ条件 c!=' \n' が成立し、最初のサイクルが開始されます。 getchar() を使用すると、プログラムは実行を一時停止してユーザー入力を待ち、ユーザーが Enter キーを押すまで文字の読み取りを開始しません。

この例では、0123456789と入力しています。4または5を読み込むと、if条件c=='4'||c=='5'が成立し、Continue文が実行されて終了します。現在のループ. 、次のループに直接入ることは、 putchar(c); が実行されないことを意味します。他の数値を読み込んだ場合は、if 条件が成立しないため、Continue 文は実行されず、読み込んだ文字が putchar(c); で出力されます。

break と continue の比較: Break はすべてのループを終了するために使用され、ループ ステートメントが実行される機会はなくなります。 continue は現在のループを終了し、次のループに直接ジャンプするために使用されます。ループ条件が true の場合、サイクルは継続します。

goto ステートメント

C 言語の goto ステートメントを使用すると、同じ関数内のマークされたステートメントに無条件で制御を移すことができます。

注: どのプログラミング言語でも goto ステートメントを使用することはお勧めできません。プログラムの制御フローの追跡が困難になり、プログラムの理解と変更が困難になるためです。 goto ステートメントを使用するプログラムはすべて、goto ステートメントを必要としない方法で書き直すことができます。

C 言語の goto ステートメントの構文:

goto label;
..
.
label: statement;

ここで、ラベルは C キーワードを除く任意のプレーン テキストにすることができ、C プログラムの goto ステートメントの前後に設定できます。 。

C言語のループ文の流れを変更するために使用できる文は何ですか?

フローチャート

C言語のループ文の流れを変更するために使用できる文は何ですか?

例:

#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   int a = 10;

   /* do 循环执行 */
   LOOP:do
   {
      if( a == 15)
      {
         /* 跳过迭代 */
         a = a + 1;
         goto LOOP;
      }
      printf("a 的值: %d\n", a);
      a++;
     
   }while( a < 20 );
 
   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます。

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

プログラミング関連の知識の詳細については、「プログラミング入門」を参照してください。 !

以上がC言語のループ文の流れを変更するために使用できる文は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。