我想知道if(!anObject)
中的感叹号是什么意思。
答案 0 :(得分:9)
它是布尔NOT运算符,也称为否定。
!true == false;
!false == true;
答案 1 :(得分:2)
这是Logical NOT运算符,即if( thisThisIsNotTrue ) { doStuff }
。
答案 2 :(得分:1)
这是一个C运算符,只是意思是“不”。所以!YES == NO和!NO == YES都是真实的陈述。例如,if (![txtOperator.text isEqualToString: @"+"])
检查txtOperator.text是否不等于@“+”。
答案 3 :(得分:1)
如果它总是添加,那么你的字符串永远不会是“+”。
除非txtOperator.txt完全等于@“+”,否则你所拥有的逻辑总是会加上+ b。
有趣的是,如果你确实传递了一个加号,它总是会减去,只有前两个案例会被击中,因为如果第一个不是真的,那么第二个案例总是会被击中。
基本上,取出所有“!”....
答案 4 :(得分:0)
正如每个人都提到的只是一个NOT运算符,我认为可能让你感到困惑的是方括号[],Objective C来自一种叫做小谈话的语言,它使用对象的发送消息方法,使用括号发送该消息。这些消息确实是功能。
答案 5 :(得分:0)
你不应该添加“!”到“if”的条件开始。您的代码表示如果运算符的文本不是+,则添加等等。你的代码应该是这样的;
- (IBAction)calculateResult {
a = [txtOperand1.text intValue];
b = [txtOperand2.text intValue];
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]];
}
else if ([txtOperator.text isEqualToString: @"*"]) {
int sum=a * b;
[result setText: [NSString stringWithFormat:@"%d", sum]];
}
else [result setText:@"nothing"];
答案 6 :(得分:0)
那么在这样的语句中使用它(取自在线课程示例):
(在此示例中,按下按钮,单击按钮后,下面的代码在“默认”状态和“选定”状态之间“切换”):
- (IBAction)flipCard:(UIButton *)sender
{
sender.selected = !sender.isSelected;
}