gpt4 book ai didi

ios - 检查很多 int 是否相等

转载 作者:可可西里 更新时间:2023-11-01 04:05:02 25 4
gpt4 key购买 nike

我想知道是否:

val1 =  val2 = val3 ... = val6 

我试试这个:

if (val1 == val2 == val3 == val4 == val5 == val6) 
{


}

但它不起作用,为什么?

最佳答案

== 运算符只在值对之间起作用。当您这样做时:

val1 == val2 == val3

真正发生的事情是这样的:

(val1 == val2) == val3

因此,如果 val1val2 相等,则括号中的表达式计算为真:

true == val3

然后它检查是否 true == val3,而不是 val1val2 == val3。你必须这样做:

val1 == val2 && val1 == val3

不过,这对于六个变量来说变得相当笨拙。您真的有六个必须比较的局部变量吗?也许您应该将它们存储在某种数组中。然后你可以这样做:

bool all_equal(int *vals, int length) {
if (length == 0) {
return true;
}
int first = vals[0];
for (int i=1; i < length; i++) {
if (vals[i] != first) {
return false;
}
}
return true;
}

所以代替:

int val1 = ..., val2 = ..., val3 = ..., val4 = ..., val5 = ..., val6 = ...;
if (val1 == val2 && val2 == val3 && val3 == val4 && val4 == val5 && val5 == val6) {
...
}

你会:

int vals[6] = {..., ..., ..., ..., ..., ...};
if (all_equal(vals, 6)) {
...
}

关于ios - 检查很多 int 是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323246/

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