#include<stdio.h>
#include<conio.h>
void main()
{
int i, j, k, l;
i = j = 0;
clrscr();
for(k = 0; k < 3; k++)
{
printf("Flag A\t");
for(l = 0; l < 2; l++)
{
printf("Flag B\t");
if(i == 5)
{
printf("Flag C\t");
if(j == 5)
{
printf("Flag D\n");
break;
}
}
i++;
j++;
}
}
printf("Value of i=%d,j=%d,k=%d,l=%d", i, j, k, l);
getch();
}
上記のコードの出力をトレースすると、次のようになります。
Flag A Flag B Flag B Flag A Flag B Flag B Flag A Flag B Flag B Flag C Flag D
values of i=5 j=5 k=3 l=1
私は手動で同じ答えを得ます。また、私の質問は次のとおりです。出力をトレースすると、i=5 および j=5 のときにブレーク条件が発生します。その際、制御は 2 つif
のループとループを中断し、l
for
ループの次の反復から開始されk
for
ます。break
それは(3つのループ内にネストされているときに3つのネストされたループをクラックする)の通常の動作ですか、それともループの組み合わせが原因で発生しますか?ループの他の可能な組み合わせを使用するとどうなりますか? break
他のループの複数の組み合わせで使用した場合のステートメントの動作を説明してください。動作も含めて説明してくださいswitch
。