gpt4 book ai didi

c - 如何将多个if语句合并为一个

转载 作者:行者123 更新时间:2023-11-30 19:56:06 25 4
gpt4 key购买 nike

我希望它生成一个 if 语句来检查 namefamilyname 变量。

我希望我的声明是这样的:

if(strcmp(name && family name , "first" /* how can i do here??? */ ) == 0){}

我当前的代码如下所示:

if (strcmp(name , "MyName" ) == 0 ){
if (strcmp(familyname,"Myfamilyname") == 0){
printf("Name:%s %s is Verified!\n", name , familyname);
}
}

最佳答案

您可以使用&&运算符:

if(!strcmp(name, "MyName") && !strcmp(family_name, "MyFamilyName")) {
// do your stuff
}

C 的逻辑运算符( &&|| )支持短路。这意味着一旦表达式的值已知,就不会计算其其余部分。例如,如果第一个 strcmp计算结果为非零(第一个名称不匹配),第二次比较根本不会进行,因为此时表达式无法为真。这可以用来检查 NULL 的情况。 ,例如:if(name != NULL && !strcmp(name, "blah")) ...

!运算符是逻辑非,它将任何非零值转换为零,并将任何零转换为一。 (这与二进制不同,不是 ~ ,它单独翻转所有位: !5 == 0 ,而是 ~5 == -6 )。 !strcmp(...)因此是 strcmp(...) == 0 的简写.

!A && !B 形式的任何逻辑表达式可以重铸为!(A || B) 。这是 De Morgan's Laws 的一个具体示例,这通常会让你的代码阅读更容易。鉴于此,您的if语句可以重写为

if(!(strcmp(name, "MyName") || strcmp(family_name, "MyFamilyName"))) {
// do your stuff
}

这就是 @Boiethios 编写的方式。

关于c - 如何将多个if语句合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41243253/

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