-1

I'm supposed to use this code

for (i=1; i<4; i++)
{
    for (j=1; j, 4; j++)
    {
        printf("Running i=%d j=%d\n", i, j);
    }
}

... with this code to break it out of its loop

if (i==2 && j ==1) {
    printf("Break inner loop when i=%d and j=%d\n", i, j);
    break;
}

私の教科書には、このbreakステートメントを内側のループ ブロックの最初に挿入するように書かれていました。どこにあるのかわからない!私はすでに多くの場所を試しましたが、まだ理解できません。

ここで私のプログラム全体:

#include <stdio.h>

int main()
{
    int i, j;

    for (i=1; i<4; i++)
    {
        for (j=1; j,4; j++)
            if (i==2 && j ==1) {
                printf("Break inner loop when i=%d and j=%d\n", i, j);
                break;
            }
            printf("Running i=%d j=%d\n", i, j);

        }
    }
    return 0;
}

私はそれを理解しました:タイプミスがありました

4

3 に答える 3

2

{内側のループ ブロックの始まりは、2 番目の の直後forです。

for(i=1;i<4;i++)
{
    for(j=1;j,4;j++)
    {
        // <<<--- They mean here.
        printf("Running i=%d j=%d\n", i, j);
    }
}

breakは内側のループからのみ抜け出すことに注意してください。外側のループが再び周回します。両方のループから抜け出す必要がある場合は、何らかのフラグを追加する必要があります。

実際に有効な C (コンマ演算子) である内側のループにタイプミスがあることに気付きました。だったはず<です:

   for(j=1;j<4;j++)
于 2013-05-15T02:52:08.600 に答える
0

i == 2 および j == 1 の場合、内側のループを中断すると、内側の for ループから抜け出すため、関数は実行されません。printf("Running i=%d j=%d\n", i, j);

コードは i と j の両方が 4 未満になるまでループを実行する必要があるため、ループを続けています。

于 2013-05-15T04:12:16.863 に答える