ホームページ  >  記事  >  バックエンド開発  >  C言語のforの使い方は何ですか?

C言語のforの使い方は何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-06-24 14:07:599764ブラウズ

C言語のforの使い方は何ですか?

##C 言語での for の使用法は次のとおりです:

for ループ ステートメントの一般的な形式は次のとおりです:

for (表达式1; 表达式2; 表达式3)
{
        语句;
}

First ofすべて、2 つの点を強調する必要があります。 ポイント:

1) 式 1、式 2、および式 3 はセミコロンで区切られており、決してカンマで記述しないでください。

2) for (式 1; 式 2; 式 3) の後にセミコロンを追加しないでください。多くの初心者はこの間違いを犯します - 彼らは、その後にセミコロンを追加せずにはいられません。

for ループはその後に 1 つのステートメントしか制御できず、C 言語ではセミコロンもステートメント (空のステートメント) であるためです。したがって、最後にセミコロンを追加すると、for ループはこのセミコロンのみを制御でき、以下の中括弧内のステートメントは for ループに属しません。

その実行プロセスを見てみましょう:

  • 式 1 を解きます。

  • 式 2 を解きます。値が true の場合は、for 文で指定された埋め込み文を実行して手順 3 を実行し、式 2 の値が false の場合はループを終了して手順 5 に進みます。

  • 式 3 を解きます。

  • 上記のステップ 2 に戻って続行します。

  • ループが終了し、for ステートメントの下のステートメントが実行されます。

この実行プロセスを見ると、「式 1」は 1 回だけ実行され、「式 2」、「式 3」と「埋め込み文」の間がループになっていることがわかります。その間に出ます。

for ステートメントの最も単純な形式は次のとおりです:

for (循环变量赋初值; 循环条件; 循环变量增值)
{
    语句;
}

1 2 3 4... 100 の合計を求めるプログラムを作成しましょう。

# include <stdio.h>
int main(void)
{
    int i;
    int sum = 0;  //sum的英文意思是“总和”
    for (i=1; i<=100; ++i)  //++是自加的意思, ++i相当于i = i + 1
    {
        sum = sum + i;  /*等价于sum += i;但是不建议这么写, 因为sum = sum + i看起来更清楚、更舒服*/
    }
    printf("sum = %d\n", sum);
    return 0;
}

出力結果は次のとおりです:

sum = 5050

このプログラムの機能は、1 2 3 4... 100 の合計を見つけることです。ループがない場合、1 回の追加には 1 つのステートメントが必要です。 、100 回加算するには 100 個のステートメントが必要です。ここでは 1 から 100 まで加算します。1 から 10000 まで加算すると、10000 ステートメントが必要になります。しかし、ループがあると非常に便利で、パラメーターを 1 つ変更するだけで、必要なだけ追加できます。だから循環が大事なんです。

上記のプログラムがどのように実行されるかを実行プロセスに従って見てみましょう。

1. まずループ変数 i を定義します。定義時に初期値を代入する必要はなく、for ループ内で初期値を代入することもできます。ただし、前述したように、変数を定義するときに初期化するのが最善であり、値が不確かな場合は 0 に初期化します。したがって、プログラムでは i を定義するときに初期値を代入することもでき、その場合、for ループ内の「式 1」は省略できますが、セミコロンは省略できません。

この場合、ステップ 1 は実行中にスキップされ、ステップ 2 に直接進み、他のすべては変更されません。したがって、次のようにプログラムを記述することもできます。

# include <stdio.h>
int main(void)
{
    int i = 1;
    int sum = 0;
    for (; i<=100; ++i)
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum);
    return 0;
}

もちろん、式 1 を追加することもできます。最悪の場合、値を再代入する必要があります。

2. 次に、「sum」の格納に使用する変数 sum を定義し、初期値 0 を割り当てて、for ループに入ります。式 1、つまり変数 i に初期値を代入します (i=1)。式 1 は今回のみ実行され、再度実行されることはありません。

  • 次に、式 2 を解きます。1
  • 次に、ステップ 3 を実行します。変数 i は 1 増加します。つまり、変数 i は 1 から 2 に変更されます。

  • 次に式 2 を解き、2
  • 次に、ステップ 3 を実行します。変数 i が 1 増加します。つまり、変数 i が 2 から 3 に変わります。

  • 次に、式 2 を解きます。つまり、3
  • ....

  • i が 100 に等しくなり、式 2 が解決される (つまり 100<) までループはこのように続きます。 ;=100 が成立すると、for ループ内の埋め込みステートメントが実行されます (sum=0 1 2 3 … 100)。

    次に、ステップ 3 を実行します。変数 i は 1 ずつ増加します。つまり、変数 i は 100 から 101 に変わります。次に、式 2 を解決します。つまり、101
以上がこのプログラムの実行処理です。 for ステートメントのコード標準化の問題に関して、強調したい点が 2 つあります:

1) if、else、for、while、do はその後の 1 つのステートメントのみを制御できます。複数のステートメントを制御するには、中括弧 {} で囲む必要があります。ただし、コードの標準化に基づき、if、else、for、while 以降の実行文には、たとえ 1 行であっても、行数に関係なく {} を追加する必要があります。

2) if、for、while などのキーワードはスペースを空けてから左括弧 (() の後にキーワードを強調表示します。

さらに、別の知識があります。関数的に言えば、

for(i=1; i<=100; i)

for(i=1; i< 101; i)

, そして、この書き方を試してみることをお勧めします つまり、ループ文のループ条件は、ループ文であっても、可能な限り、半開、半閉として書くべきです。 for ループまたは while ループ。

for(i=1; i<101; ++i)实际上是 1≤i<101,是半开半闭的;而for(i=1; i<=100; ++i)实际上是 1≤i≤100,是全闭的。那么为什么建议使用半开半闭的呢?因为如果写成 i<=100 的话,那么每次判断的时候都要判断两次,即 i<100 和 i==100,而写成 i<101 的话每次只需要判断一次。

下面再给大家写一个程序,求 1 到 100 之间所有奇数的和。

# include <stdio.h>
int main(void)
{
    int i;
    int sum = 0 ;
    for (i=1; i<100; i+=2)  //i+=2;等价于i = i + 2;
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum);
    return 0;
}

输出结果是:

sum = 2500

推荐教程:《C视频教程

以上がC言語のforの使い方は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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