Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,当for循环的条件为';我一开始没见过面?_C_Loops_For Loop_Conditional Statements - Fatal编程技术网

在C语言中,当for循环的条件为';我一开始没见过面?

在C语言中,当for循环的条件为';我一开始没见过面?,c,loops,for-loop,conditional-statements,C,Loops,For Loop,Conditional Statements,例如,如果我说: for(i = 2; i < 2; i++) (i=2;i

例如,如果我说:

for(i = 2; i < 2; i++)
(i=2;i<2;i++)的


显然,这是一个无用的for循环,但可能i=a,a由其他东西设置。那么在这种情况下会发生什么呢?

循环的两次迭代都不会执行

事实上,这个循环(前提是条件没有副作用)


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

for loop的工作方式是它检查条件(在你的例子中是
i<2
)并执行
{}
之间的任何代码或下面行中的任何代码

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


本质上,无论for循环中的代码是什么,都不会执行。

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

示例代码路径:

  • 设置
    i=2
  • 检查
    i是否<2
  • 退出循环,因为步骤2的计算结果为false

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

    您不能在大约两分钟内编写一些代码来回答这个问题吗?@KenWhite我的编译器现在正在运行,否则我会测试它的。编译器到底是怎么运行的?那是胡说八道。你只是觉得自己不需要做任何事情就可以找到答案,因为你可以在这里提问并得到答案。那太可怕了。有时需要帮助是可以的,但不要完全无助。学会自己努力去解决问题,而不是手握着手。(事实上,我打赌这是一个在早期编程课堂作业中被问到的问题,而你只是得到了一个家庭作业的答案。你甚至有编译器吗?)“狗吃了我的编译器”
    for(i = 2; i < 2; i++) { /* ... */ }
    
    i = 2;