我不能使用&&和||创建if语句

Jes*_*ica 0 if-statement objective-c

我正在尝试这样做一个if语句:

if ([myString isEqualToString:@"string"] && myint == 3 || myint == 2) {...}
Run Code Online (Sandbox Code Playgroud)

基本上是什么,它确保它strings是平等的.然后,要么myint可以等于2或3.

当我尝试这样做时,我得到一个错误说'&&' withing '||'.它建议在括号中加上括号,&&如下所示:

if (([myString isEqualToString:@"string"] && myint == 3) || myint == 2)
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果没有括号,为什么我不能这样做.括号做了什么?

mat*_*att 5

实际上,你想要的是什么

if ([myString isEqualToString:@"string"] && (myint == 3 || myint == 2))
Run Code Online (Sandbox Code Playgroud)

括号做他们一直做的事情:他们确定操作的顺序,而不是将它留给操作员的优先级(你不太可能知道).