gpt4 book ai didi

c - 我对这个 if 语句的否定是否正确?

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

我目前正在处理一些具有此 if 语句的遗留代码:

if(c == 30 || c == 3 || c == 4 || r == 'Y' || t == 'X' ||( s>= 50000 && s <= 50999))
{
//do nothing
}
else
{
function1();
}

我试图通过否定 if 来消除不必要的“什么都不做”,但我不确定如何处理“s”部分:

if((c != 30 && c != 3 && c != 4 && r != 'Y' && t != 'X') ...what goes here?...)
{
function1();
}

我都试过了 && (s >= 50000 || s <= 50999)||(s < 50000 && s > 50999)但是那些没有通过我运行的测试用例。当我尝试 &&( s < 50000 || s > 50999))我所有的测试用例都成功了,但我知道我不能测试所有的东西,所以我希望对逻辑否定有更强把握的人可以肯定地告诉我这是否正确。

最佳答案

如果你有这样的逻辑表达式

expr1 || expr2

然后它的否定

!( expr1 || expr2 )

等价于tp

!expr1 && !expr2

反之亦然,如果你有这样的表达式

expr1 && expr2

然后它的否定

!( expr1 && expr2 )

相当于

!expr1 || !expr2

所以要否定这个表达式

c == 30 || c == 3 || c == 4 || r == 'Y' || t == 'X' ||( s>= 50000 && s <= 50999)

喜欢

!( c == 30 || c == 3 || c == 4 || r == 'Y' || t == 'X' ||( s>= 50000 && s <= 50999))

我们会得到

!( c == 30 )&& !( c == 3 ) && !( c == 4 ) && !( r == 'Y' ) && !(t == 'X' ) && !( s>= 50000 && s <= 50999)

然后

c != 30 && c != 3 && c != 4 && r != 'Y'&& t != 'X' && ( !( s>= 50000 ) || !( s <= 50999))

最后

c != 30 && c != 3 && c != 4 && r != 'Y'&& t != 'X' && ( s < 50000 || s > 50999 )

关于c - 我对这个 if 语句的否定是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963679/

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