在C中,当开始时不满足for循环的条件时会发生什么?

时间:2017-03-10 01:13:18

标签: c loops for-loop conditional-statements

例如,如果我说:

会发生什么
for(i = 2; i < 2; i++)

显然,这对于循环来说是无用的,但也许i = a,而a是由其他东西设置的。那么在这种情况下会发生什么?

4 个答案:

答案 0 :(得分:2)

不会执行循环的迭代。

实际上这个循环(假设条件没有副作用)

for(i = 2; i < 2; i++) { /* ... */ }

等同于此声明

i = 2;

答案 1 :(得分:1)

在每次迭代之前检查for循环的条件,包括第一次迭代;所以你的循环体将永远不会被执行。

答案 2 :(得分:0)

for loop 的工作方式是检查条件(在您的情况下为i < 2)并执行{ }之间的任何内容或以下行中的任何代码

当您将i初始化为2时,条件会立即失败并且不执行任何操作。

基本上, for loop 中的任何代码都不会执行。

答案 3 :(得分:0)

for循环中,在第一次迭代之前评估条件。这意味着在您的示例中,由于i已经大于或等于2,因此不会执行循环的内容。

示例代码路径:

  1. 设置i = 2
  2. 检查i < 2
  3. 退出循环,因为第2步评估为false。
  4. 但是,

    i仍然会被修改,因为变量初始化(即i = 2)仍然会在检查条件之前发生。