Ban*_*kyo -3 iphone objective-c
可能重复:
目标C中的感叹号在"if(![")中的含义是什么
在我之前的问题中,我不太清楚.令我困惑的是为什么在这一行:
if (![txtOperator.text isEqualToString: @"+"]) {
int sum=a+b;
[result setText: [NSString stringWithFormat:@"%d", sum]];
}
Run Code Online (Sandbox Code Playgroud)
添加操作数并显示结果,即使使用NOT运算符也不应该发生这种情况,当我添加以下行时,计算器继续添加只是无论你放在那里的运算符都无关紧要.
else if (![txtOperator.text isEqualToString: @"-"]) {
int sum=a-b;
[result setText: [NSString stringWithFormat:@"%d", sum]];
}
else if (![txtOperator.text isEqualToString: @"/"]) {
int sum=a/b;
[result setText: [NSString stringWithFormat:@"%d", sum]];
}
else if (![txtOperator.text isEqualToString: @"*"]) {
int sum=a * b;
[result setText: [NSString stringWithFormat:@"%d", sum]];
}
Run Code Online (Sandbox Code Playgroud)
让我们来看看你在做什么:
[txtOperator.text isEqualToString: @"-"]
Run Code Online (Sandbox Code Playgroud)
你正在检查是否txtOperator.text等于@" - ".
如果是的话-,它会回来YES.
否则NO.
然后你否定这句话:
![txtOperator.text isEqualToString: @"-"]
Run Code Online (Sandbox Code Playgroud)
现在一切都-不会回归YES.
只有-意志才会回归NO.
因此,在您的示例中,if-clause在每种情况下都会输入,但是在字符串匹配时.要检查字符串匹配,请忽略NOT运算符.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |