多层嵌套循环与 goto 语句

多层嵌套循环与 goto 语句

循环可以嵌套任意多层。例如:

由 i 控制外部循环,每一次循环都在内部由 j 控制内部循环,然后每一次 j 的循环又会对内部的 k 进行循环。所以内层循环体会执行 2 * 3 * 4 = 24 次。

#include <stdio.h>

int main(void)
{
    for(int i = 1; i <= 2; i++)
    {
        for(int j = 1; j <= 3; j++)
        {
            for(int k = 1; k <= 4; k++)
            {
                if(k == 2)
                    break;
                printf("%d(i)-%d(j)-%d(k)\n", i, j, k);
            }
        }
    }

    return 0;
}Code language: PHP (php)

有时候在这样的深层嵌套循环中,希望从最内层的循环直接跳到最外层循环的外面,执行最外层循环后面的语句。但是这时候使用 break 是没法跳出最外层循环的,break 只能跳出当前所在的循环。

如果要跳出最外层循环,此时可以使用 goto 语句。

当条件满足时,直接跳出最外层的 i 的 for 循环,去到下面的 there 标号处。

#include <stdio.h>

int main(void)
{
    for(int i = 1; i <= 2; i++)
    {
        for(int j = 1; j <= 3; j++)
        {
            for(int k = 1; k <= 4; k++)
            {
                if(k == 2)
                    goto there;
                printf("%d(i)-%d(j)-%d(k)\n", i, j, k);
            }
        }
    }

there:

    return 0;
}Code language: PHP (php)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注