3

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

4

7 回答 7

11

它是布尔 NOT 运算符,也称为否定。

!true == false;
!false == true;
于 2011-07-04T22:07:31.000 回答
2

那是逻辑非运算符,即if( thisThisIsNotTrue ) { doStuff }.

于 2011-07-04T22:06:50.213 回答
1

如果它总是添加,那么你的字符串永远不会是“+”。

除非 txtOperator.txt 完全等于 @"+",否则您所拥有的逻辑将始终添加 a+b。

有趣的是,如果你确实通过了一个加号,它总是会减去,只有前两个案例会被击中,因为如果第一个不是真的,第二个总是会是。

基本上,去掉所有的“!”......

于 2011-07-04T23:06:30.307 回答
1

它是一个 C 运算符,仅表示“不是”。所以 !YES == NO 和 !NO == YES 都是正确的陈述。if (![txtOperator.text isEqualToString: @"+"]),例如,检查 txtOperator.text 是否不等于 @"+"。

于 2011-07-04T22:08:25.173 回答
0

正如每个人都提到的只是一个 NOT 运算符,我相信可能会让你感到困惑的是括号 [],Objective C,来自一种叫做 smalltalk 的语言,它使用发送消息的方法来发送对象,括号用于发送那个信息。消息实际上是函数。

于 2011-07-04T22:11:32.027 回答
0

你不应该添加“!” 到“if”中条件的开始。您的代码说,如果运算符的文本不是 +,则添加等等。你的代码应该是这样的;

-(IBAction)计算结果{

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"]; 
于 2011-07-05T07:09:51.280 回答
0

那么它在这样的语句中的使用呢(取自在线课程示例):

(在这个例子中,一个按钮被按下并且在点击该按钮时,下面的代码在默认状态和选择状态之间“切换”):

- (IBAction)flipCard:(UIButton *)sender
{
    sender.selected = !sender.isSelected;
}
于 2013-02-14T17:24:09.207 回答