带有标志的“继续”作用于哪个循环?
Posted
技术标签:
【中文标题】带有标志的“继续”作用于哪个循环?【英文标题】:Which loop does the 'continue' act on with a flag? 【发布时间】:2016-04-05 08:33:36 【问题描述】:continue 语句应该作用于内部循环,对吧?还是我错过了什么?
for (j=0; j< 100; j++)
for (i=0 ; i<10; i++)
bool flag = false;
//CALL TO A FUNCTION WHICH, BASED ON SOME CONDITION, MODIFIES FLAG AND RETURNS IT TO THIS LOOP
if(flag)
continue; //SHOULDN'T IT CONTINUE THE LOOP ON i??????
//CALLS TO SOME OTHER FUNCTIONS WHICH SHOULDN'T BE CALLED IF FLAG IS 1
【问题讨论】:
是的,我做到了。在我的情况下,它不会迭代到下一个 i 值,它会继续调用低于该条件的其他函数,即使现在标志为 1(我知道,因为我通过打印它进行了检查) 对不起,我在函数中打印了值,它给出了 1,但是在返回值时我想有一些错误,因为在我的 i 循环中,现在当我打印它时,它又是 0。我会看看有什么问题。 我更正了返回的错误,现在它迭代到外部循环而不是内部循环。 您能否粘贴出现问题的最短代码版本? 【参考方案1】:Continue 将移动到调用它的最近循环的下一次迭代。在您的情况下,它将移至第二个循环的下一次迭代,即值为 i 的那个。
如果遇到 continue 时 i 的值为 9 ,它将进入第二个循环,当 i 的值在递增后变为 10 时,它不满足条件,它将移动到外循环的下一次迭代值 j。
【讨论】:
我不知道为什么在我的代码中它移动到 j 的下一次迭代。你能推荐点什么吗? 能不能在if条件里面加个print语句来确认确实进入了if条件并执行了continue语句。【参考方案2】:如果内循环计数器(i)在遇到 continue 语句时为 9,则内循环将退出,外循环将在进入内循环之前发生一次迭代,其计数器初始化为 0。
【讨论】:
以上是关于带有标志的“继续”作用于哪个循环?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Qt::CustomizeWindowHint 标志的 QMainWindow 不起作用 aero snap