ましょう作業を終了します。次のように
for (i = 5; i >= 1; i--)
{
loop-body
}
動作のシーケンスは、次のとおり
- 初期
i
5
(i = 5
)に、
i >= 1
が真の場合は3に、それ以外の場合は6に移動します。
i
(i--
)
- ジャンプ2から
loop-body
- 減算
1
を実行します。
- ループを終了します。したがって
、loop_body
内のステートメントのシーケンスが5回実行されている - 場合i
到達0に、i
が1、2、3、4には、5から進み、ループが実行されるたびに0
の場合、条件i >= 1
はもはや真でなく、ループはその時点で終了します。もう少しそれを破壊
:
for (i = 5; i >= 1; i--)
{
inner-loop
printf("\n");
}
printf("\n")
は標準出力に改行文字を書き込み - この以下のいずれかの出力は新しい行に書き込まれます。だから我々のシーケンスは
- です。
i
から5
までです。
i >= 1
がtrueの場合はgoto 3、そうでない場合はgoto 7;
- 実行
inner-loop
;
- 標準出力に改行文字を書き込みます。
1
をi
から減算する。
- 後2。
- ループを終了します。
仕上げにストレートジャンプ:オペレーションの
for (i = 5; i >= 1; i--)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
私たちのシーケンスは以下のようになります。
- 初期
i
5
へ。
i >= 1
が真の場合は3に、そうでない場合は10に移動します。
j
~1
を初期化します。
j <= i
がtrueの場合は、goto 5、それ以外の場合はgoto 8;
- 標準出力に
*
文字を書き込みます。
1
からj
(j++
)を追加します。
- 後藤4;
- 改行を標準出力に書き出します。
- 後2。
- ループを終了します。
printf("*");
を5回連続して呼び出すと、*****
が標準出力に書き込まれます。これを4回連続して呼び出すと、****
が書き込まれます。あなたが間にprintf("\n");
を呼び出す場合、あなたは
*****
****
https://en.wikipedia.org/wiki/For_loop – Jack
を取得し、変数の役割は、特定の型の値を格納することです。 – Olaf
宿題のような音... –