C - 继续 n 次 for 循环

C - continue n times a for loop

如何使用continue关键字,继续n次循环。就像在 shell 中一样,我们可以执行 continue 2 以跳过 2 次迭代。 如何在 C 中实现这一点。

您不能使用 continue 执行此操作,但您可以跳过 for 递增变量的循环以跳过 n 次迭代。

for (int i = 0; i < 10; i++) 
{
   if (some_condition) 
     i += nSkip;

    (...) 
}

从根本上说,这是一个编程风格问题,而且这些问题总是容易引起自以为是的争论。 Reader 小心。 :-)

C没有break(n)continue(n)。这是一个深思熟虑的选择。人们觉得这些构造太难维护了。以后的程序员很难计算和跟踪嵌套循环。对于后来的程序员来说,插入或删除嵌套级别太容易了,从而忽略了计数。

转向最大的风格辩论之一的根源,有些人说 goto 是邪恶的,永远不应该使用。还有一些人说 breakcontinue 只是变相的 goto,永远也不应该使用它们。就个人而言,我不同意这两个立场,但我 同意 break(n)continue(n) 与纯 [=12= 相比几乎没有价值];它们至少同样令人困惑并且容易出错。因此,如果您发现自己在 C 中需要 break(n)continue(n),并且别无他法,那就硬着头皮使用 goto。您需要 break(n)continue(n) 的事实证明您正在做一些无法挽回的丑陋事情,因此 goto 不会让事情变得更糟。

(现在,确实如此,将 break(n) 替换为 goto out; 很容易,但几乎没有那么容易。一般来说,将 continue(n) 替换为goto。因此,您可能不得不做其他事情,这可能会很丑陋,但同样,当您到达这里时,无论如何您都注定要这样做。)

另见 及其答案,尽管那里的讨论专门针对 break(n),而不是 continue(n)

int i;
for (int i = 0; i < 10; i++) 
{
   if (n<=2) 
     continue;
   else
      <do your task>
}