ホームページ >バックエンド開発 >C#.Net チュートリアル >for ループは最初にループ本体ステートメントを実行してから式を評価しますか?
いいえ、for ループは最初に式を判断してから、ループ本体のステートメントを実行します。一般的な形式は「for (式 1; 式 2; 式 3) {ループ本体}」です。最初に「式 1」を実行し、次に「式 2」を実行し、値が true (0 以外) の場合は、ループ本体、そうでない場合はループを終了; ループ本体を実行した後、「式 3」を実行します。
#for ループの一般的な形式は次のとおりです:
for(表达式1; 表达式2; 表达式3){ 语句块 }その実行プロセスは次のとおりです: 1) 最初に「式 1」を実行します。 2) 「式 2」を再度実行し、値が true (0 以外) の場合はループ本体を実行し、それ以外の場合はループを終了します。 3) ループ本体の実行後、「式3」を実行します。 4) 「式 2」の値が false になるまで手順 2) と 3) を繰り返し、ループを終了します。 上記の手順の 2) と 3) はループになっており、繰り返し実行されますが、for ステートメントの主な機能は、手順 2) と 3) を継続的に実行することです。
「式 1」は最初のループ中にのみ実行され、今後は実行されません。これは初期化ステートメントと考えることができます。 「式2」は一般に、次のループを継続するかどうかを決定する関係式であり、これを「ループ条件」と呼ぶ。 「式 3」は、多くの場合、インクリメントまたはデクリメント演算を伴う式であるため、ループ条件は徐々に「真ではない」になります。
for ループの実行プロセスは次の図で表すことができます。
「計算」を分析してみましょう。 1 から 100 までの加算と" コード:#include <stdio.h> int main(){ int i, sum=0; for(i=1; i<=100; i++){ sum+=i; } printf("%d\n",sum); return 0; }実行結果:
5050コード分析: 1) for ステートメントを実行するとき、最初に初期値を i 1 にします。i2) 2 番目のループでは、i の値は 2 で、i3) 101 回目のループまで 2) を繰り返しますが、この時点では i の値は 101 であり、iこれから、for ループの一般的な形式を要約できます:
for(初始化语句; 循环条件; 自增或自减){ 语句块 }
for ループ内の 3 つの式
for ループ内の「式 1 (初期化条件)」、「式 2 (ループ条件)」、および「式 3 (自己インクリメントまたは自己デクリメント)」はすべてオプションで省略できます (ただし、セミコロン; は必須です)保持されます)。
int i = 1, sum = 0; for( ; i<=100; i++){ sum+=i; }
i=1 であることがわかります。 for ループの外に移動されました。
for(i=1; ; i++) sum=sum+i;は次と同等です:
i=1; while(1){ sum=sum+i; i++; }いわゆる無限ループとは、ループ条件が常に true であり、ループが継続して終了しないことを意味します。無限ループはプログラムにとって非常に有害なので、回避する必要があります。 3) 「式3(自己インクリメントまたは自己デクリメント)」を省略した場合、「式2(ループ条件)」の変数は変更されません。ループ本体ステートメントに追加されます。例:
for( i=1; i<=100; ){ sum=sum+i; i++; }4) 「式1(初期化文)」と「式3(自己インクリメントまたは自己デクリメント)」は省略されます。例:
for( ; i<=100 ; ){ sum=sum+i; i++; }は
while(i<=100){ sum=sum+i; i++; }5 と同等です) 3 つの式を同時に省略できます。例:
for( ; ; ) 语句は次と同等です:
while(1) 语句6) 「式 1」は初期化ステートメントまたは他のステートメントにすることができます。例:
for( sum=0; i<=100; i++ ) sum=sum+i;7) 「式 1」と「式 3」は、単純な式またはカンマ式にすることができます。
for( sum=0,i=1; i<=100; i++ ) sum=sum+i;または:
for( i=0,j=100; i<=100; i++,j-- ) k=i+j;8) 「式 2」は通常、関係式または論理式ですが、数値や文字を使用することもできます。 -zero、ループ本体が実行されます。例:
for( i=0; (c=getchar())!='\n'; i+=c );別の例:
for( ; (c=getchar())!='\n' ; ) printf("%c",c);関連する推奨事項: 「
c 言語チュートリアル 」
以上がfor ループは最初にループ本体ステートメントを実行してから式を評価しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。