gpt4 book ai didi

c - C语言中的if-else条件

转载 作者:行者123 更新时间:2023-12-04 11:07:00 25 4
gpt4 key购买 nike

在C语言中,如果把x=0放在if-else条件下,结果是什么?如果是false 或者如果这个赋值完成,那么就表示true?

我的同事写代码为:

if(condition = 0)
{
//do process A
}
else
{
// do process B
}

显然,这段代码是错误的,我知道它应该是 condition == 0((condition=foo()) == 0) 但我的假设是程序应该始终执行进程 A,因为我认为 if(condition = 0) 应该始终返回 true,因为这是将值 0 设置为变量 condition 并且这套流程应该是真的。但是,程序总是执行进程 B,这意味着 if 使用变量 condition 值,我的假设是错误的。

然后我又做了一个测试代码:

if(condition = 2) //or other none-zero value
{
//do process A
}
else
{
// do process B
}

这一次,程序总是执行进程A。

我的问题是为什么if-else条件不使用condition的运算值而是使用设置后的left变量?

最佳答案

当您将 0 分配给变量 condition 时,它变为 false,因为 0 表示 false,任何非零值都表示 true。因此,当您分配 0 时,else 条件被执行,而当您分配 2 条件时,它表示一个 true 语句,它执行...

if(condition = 0)    

将值 0 分配给条件后,它变为

if(condition)    

因为它是 false,所以它不执行。但是,当条件 = 2 时,它以相同的方式工作并变为 true。因此,if 条件将被执行。

关于c - C语言中的if-else条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395548/

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