5

我在 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;
                            }
                    }
            }
}
4

4 回答 4

13

它只会破坏内for循环而不是外while循环。
在发布问题之前,您实际上可以使用简约的代码示例进行测试。我想这将花费与构建 Q 相同的时间。

于 2012-10-24T08:33:52.200 回答
5

来自 C 标准:(第 6.8.6.3 节)

约束

break 语句应仅出现在或作为 switch 主体或循环主体出现。

语义

break 语句终止执行最小的封闭 switch 或迭代语句。

于 2012-10-24T08:35:29.117 回答
1

如果你把它放在for循环中,它只会停止/中断for循环。

于 2012-10-24T08:34:12.520 回答
0

break执行时,程序停止执行它下面的其他语句,loop并从出现的循环体之后的语句开始break。在这种情况下,它只会从内部for循环中出来。如果你想做一些演示,只需在循环(eg printf("outside inner loop");)的右花括号 } 之后放置一条语句。for然后您将看到该语句的执行。

于 2012-10-24T08:50:56.127 回答