C;如果我在 while 循环内的 for 循环中放置一个 break
Posted
技术标签:
【中文标题】C;如果我在 while 循环内的 for 循环中放置一个 break【英文标题】:C; If I put a break in a for loop inside a while loop 【发布时间】:2012-10-14 06:35:50 【问题描述】:我在 C 中做这个,而不是 C++。无论如何,如果我在 for 循环中放置一个 break 语句,它会仅停止 for 循环还是同时停止 for 和 while 循环?例如,这是我的代码中带有 while 和 for 的部分。我正在做的是让用户输入一个 24 小时的时间,我正在检查这个循环中的分钟数(希望是正确的)。我关心的是break语句是只结束for循环还是结束for和while,因为我只希望for循环结束。
boolean check = false;
while (!check)
int i;
for (i = 1; i < 24; i++)
int hour = i*100;
/* if the time has less hours than the hour counter*/
if ((hour - timeOfDay) < 100)
/*declare an illegal time when the number of minutes remaining*/
/*is greater than 59*/
if ((hour - timeOfDay) > 59)
check = false;
break;
【问题讨论】:
也许您需要在某处将愚蠢的标志设置为“真”? 【参考方案1】:它只会破坏内部 for
循环,而不会破坏外部 while
循环。
实际上,您可以在发布问题之前使用简约的代码示例进行测试。我想这将花费与构建 Q 相同的时间。
【讨论】:
【参考方案2】:如果你把它放在for
循环中,它只会停止/中断for
循环。
【讨论】:
在这种情况下为真。如果for
循环不是最内层循环,则不正确。
是的,我只关注这个案例。【参考方案3】:
来自 C 标准:(第 6.8.6.3 节)
约束
break 语句只能出现在或作为 switch 主体或循环主体。
语义
break 语句终止执行最小的封闭开关或迭代 声明。
【讨论】:
【参考方案4】:当break
执行时,程序停止执行它下面的其他语句,并刚刚离开loop
并从break
所在的循环体之后的语句开始。
在这种情况下,它只会从内部for
循环中出来。
如果你想做一些演示,只需在 for
循环的右大括号 之后放置一条语句 (eg printf("outside inner loop");)
。
然后您将看到该语句的执行。
【讨论】:
以上是关于C;如果我在 while 循环内的 for 循环中放置一个 break的主要内容,如果未能解决你的问题,请参考以下文章