在Objective-C if语句中,感叹号的含义是什么?

时间:2011-07-04 22:04:01

标签: objective-c logical-operators boolean-expression

我想知道if(!anObject)中的感叹号是什么意思。

7 个答案:

答案 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;
}