【发布时间】:2013-05-11 23:35:40
【问题描述】:
如果我在while 循环中使用continue,为什么它倾向于进入无限循环,但在for 循环中工作正常?
如果我在continue 之后使用循环计数器增量i++,它会在while 循环中被忽略,但如果它在for 循环中,它会起作用。
如果continue 忽略后续 语句,那么为什么不忽略for 循环的第三条语句,其中包含计数器增量i++? for 循环的第三条语句 subsequent 到 continue 是否也应该被忽略,因为for 循环的第三条语句是在 之后执行的循环体?
while(i<10) //causes infinite loop
{
...
continue
i++
...
}
for(i=0;i<10;i++) //works fine and exits after 10 iterations
{
...
continue
...
}
【问题讨论】:
-
查看输出程序集,您会发现 for 循环并没有像您想象的那样扩展。
-
问:如果将
continueAFTERi++放入“while”循环会发生什么?问:你明白初始化、增量和条件都是你的“for”循环中同一个结构的一部分吗?它们总是被执行,与循环内发生的事情无关? -
Thokchom,我建议你找一些比 MS 提供的更好的文档 :-)
-
MS 是信任的代名词?我拒绝发表评论 :-) 无论是错误的还是被误解的,我都会留给你决定。它确实将控制权传递回
for主体的第一条语句,但仅在首先执行后期操作之后。 -
Thokchom,我认为这是一个错字,条件表达式是中间那个,所以我怀疑他们的意思是“......导致 for 语句的 third 表达式待评估”。
标签: c loops for-loop while-loop continue