gpt4 book ai didi

c++ - for循环C++中没有检查条件

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

char i;

for (i = 1; i < 10, i++;)
{
cout << (i+1) << endl;
}

return 0;

我知道 for 循环有以下语法:

for(initialization; condition; increment)
{

}

当我运行调试时,为什么它从不检查条件并最终在 i = 0 处停止?

(谢谢 Damien 和 Andars,我不知道为什么删除了“故意”语句,但你正确地解释了我的问题。有人可以解释为什么编译器跳过逗号前的条件,以及循环停止的原因在 i = 0 而不是永远循环?谢谢!)

最佳答案

我相信他是在表明他是故意这样写代码的。

要回答,i++ 将始终返回 true。最后一个值是逗号分隔语句的重要值,因此循环不会停止。

编辑详细说明:

它不是简单地使用逻辑或,它会忽略逗号之前的内容,只取最后一个值。任何非零的值都被认为是真实的,并且由于 i 从 1 开始并上升,它将始终为非零(直到它溢出并返回,这解释了为什么 i 以 0 结束)。

如果你说:

x = 4, 5, 6;

x 将等于 6,即最后一个值。

关于c++ - for循环C++中没有检查条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21213870/

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