gpt4 book ai didi

c - 检查 count-- 在 for 循环中会取消循环吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:27 27 4
gpt4 key购买 nike

对不起,我是 C 语言的新手。谁能帮我理解“for”循环中发生的事情:

当我运行这段代码时,我什么也没得到,它甚至没有进入循环:

for( count=0   ;count--;count--)
{
printf("\n%5d", count);
}

当我运行这段代码时,我得到了循环的无限入口:

for( count=1   ;count--;count--)
{
printf("\n%5d", count);
}

当我运行这段代码时,我得到了 1 个循环入口:

for( count=2  ;count--;count--)
{
printf("\n%5d", count);
}

依此类推,对于每个 count=奇数,我得到无限个入口,对于每个 count=偶数,我得到有限个入口

谁能解释一下为什么会这样?

最佳答案

  1. for(left;middle;right) 中间的表达式是条件 - 一个可根据上下文转换为 bool 的表达式。这个表达式在每次迭代之前被评估,如果它产生 false(或者在 int 的情况下为 0),则退出循环。

  2. foo-- 是后置运算符,意思是foo的值先求值再减。

    <

把这两个放在一起,

案例 1:在进入循环之前,计算 count--。计数当前值为0,所以不执行循环。

Case2:count--求值为1,进入循环一次。 count-- 在循环结束时执行。 count-- 现在在循环开始时计算为 -1,因此循环再次执行,依此类推 - 无穷无尽

Case3:count--为2,循环结束count--为0,循环1次后退出。

关于c - 检查 count-- 在 for 循环中会取消循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com