Nic*_*ard 0 c enums objective-c ios
我想检查两种枚举类型,但似乎不起作用。我有以下几点:
typedef enum {
ZSSegmentTypeE,
ZSSegmentTypeS,
ZSSegmentTypeO,
ZSSegmentTypeD,
ZSSegmentTypeN
} ZSSegmentType;
Run Code Online (Sandbox Code Playgroud)
以下作品:
if (someSegmentType != ZSSegmentTypeN) {
// Works
}
Run Code Online (Sandbox Code Playgroud)
以下不工作:
if (someSegmentType != ZSSegmentTypeN || someSegmentType != ZSSegmentTypeD) {
// Does NOT work
}
Run Code Online (Sandbox Code Playgroud)
为什么第二个示例不起作用,我正在测试两个不同的枚举?我在理解枚举和比较的工作方式时缺少什么?
德摩根定律告诉你,这:
someSegmentType != ZSSegmentTypeN || someSegmentType != ZSSegmentTypeD
Run Code Online (Sandbox Code Playgroud)
与此相同:
!(someSegmentType == ZSSegmentTypeN && someSegmentType == ZSSegmentTypeD)
Run Code Online (Sandbox Code Playgroud)
我敢肯定,你知道,someSegmentType不能同时ZSSegmentTypeN 和 ZSSegmentTypeD在同一时间。因此,括号中的表达式将始终为假,整个语句为真。
您可能想要测试的是该变量是否不是这两个值。你这样做:
someSegmentType != ZSSegmentTypeN && someSegmentType != ZSSegmentTypeD
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9623 次 |
| 最近记录: |