Lea*_*s2D 2 comparison boolean equality objective-c
考虑到所有三个变量具有相同的值,可以预期以下比较结果为YES:
NSUInteger count1 = 2;
NSUInteger count2 = 2;
NSUInteger count3 = 2;
BOOL countEqual = (count1 == count2 == count3);
// but: countEqual = NO
Run Code Online (Sandbox Code Playgroud)
Alas countEqual是NO,我想更好地理解为什么以及这个特定问题是否也出现在C或C++代码中?
我的猜测是:
(count1 == count2) --> YES (1)
(YES == count3) or (1 == count3) --> NO (0)
Run Code Online (Sandbox Code Playgroud)
您的猜测完全正确,它将从第一次比较中获取结果,并将其与第3个值进行比较.要做到这一点,你需要这样做
countEqual = (count1 == count2) && (count1 == count3);