地瓜patch 发表于 2025-8-12 16:45

例程中看到这样一个for循环


下边这个循环语句,我的理解是三个等号同时成立的话,进入循环体。否则不进入。请教这样理解是否正确?

for (session_done = 0, errors = 0, session_begin = 0; ;)
{
    .........
}

那么,若是理解正确的话,能否写成如下的while循环,同样三个等号同时成立的话,进入循环体。否则不进入。
while (session_done = 0, errors = 0, session_begin = 0)
{
    .........
}

zhoupxa 发表于 2025-8-12 19:37

for循环不是赋初值吗?while循环也是赋值而非条件判断

地瓜patch 发表于 2025-8-12 21:10

zhoupxa 发表于 2025-8-12 19:37
for循环不是赋初值吗?while循环也是赋值而非条件判断

这种用法也是第一次见

sfd123 发表于 2025-8-13 14:45

你的理解是不对的,那只是初值,条件是后边的,在你这里 是空的

地瓜patch 发表于 2025-8-13 14:56

sfd123 发表于 2025-8-13 14:45
你的理解是不对的,那只是初值,条件是后边的,在你这里 是空的

条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?

sfd123 发表于 2025-8-15 13:28

地瓜patch 发表于 2025-8-13 14:56
条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?

可以在循环体 里边 做退出循环的判断,满足条件break 就退出来了啊

sfd123 发表于 2025-8-15 13:29

地瓜patch 发表于 2025-8-13 14:56
条件的确是空的,这个语句实现什么功能呢?相当于while(1)死循环?

譬如
for (session_done = 0, errors = 0, session_begin = 0; ;)
{
    if(errors != 0) break;
}
页: [1]
查看完整版本: 例程中看到这样一个for循环