我正在尝试理解“continue”的工作原理。我理解了这个关键字的概念,但是当我运行不同的程序时,它的表现却不同:-/ 以下是几个例子:
如果我运行这个程序:
int j = 0;
int i = 0;
LABEL1: for (; i < 3; i++) {
if (true)
continue;
}
i的值将变为3。目前为止一切顺利。现在我们添加一个外部循环:
int j = 0;
int i = 0;
LABEL2: for (; j < 3; j++) {
LABEL1: for (; i < 3; i++) {
if (true)
continue LABEL2;
}
}
i的值将会是...0! 如果在带有指向外部循环的标签的continue语句中使用,我不明白为什么i没有增加。有人可以解释一下吗? 类似于break或do{} while这样的东西有什么棘手的问题吗?
非常感谢您能提供的任何帮助。
continue
会将你分支到循环的结尾,就在闭合的}
之前。这导致循环条件被重新评估,就像程序流程“落入”循环底部一样。在continue label;
的情况下,控制转移到由label:
标识的循环底部。 - Hot Licks