多层嵌套循环与 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)
Previous: for 循环嵌套 while 循环
Next: do-while 循环