2012-10-24 122 views
2

我在C中执行此操作,而不是C++。无论如何,如果我在for循环中放置break语句,它会停止for循环还是for循环和while循环?例如,这里是我的代码与while和for的一部分。我正在做的是让用户输入24小时的时间,并且我正在检查这个循环中的分钟数(希望这是正确的)。我担心的是,如果break语句只会结束for循环,或者它会结束for和while,因为我只希望for循环结束。C;如果我在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; 
          } 
        } 
      } 
} 
+0

也许你需要将傻标志设置为“true”的地方? – wildplasser

回答

10

它只会破坏内for循环,而不是外while回路。
实际上,你可以用简约的代码示例测试这个您发布的question.I之前猜如果你把它里面for循环就会停止/中断,将需要大量的时间相同数量之多取景Q.

1

只有for循环。

+0

在这种情况下是正确的。如果'for'循环不是最内层循环,则不成立。 –

+0

是的我只对这种情况特别感兴趣。 – Abubakkar

5

从C标准:(节6.8.6.3)

约束

break语句应仅在或作为开关体或环体出现。

语义

break语句终止最小包围开关或迭代 语句的执行。

0

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