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 を追加します。

興味深いことに、プラスを渡した場合、常に減算されます。最初の 2 つのケースのみがヒットします。

基本的には「!」をすべて外して……。

于 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 は、オブジェクトへのメッセージ送信アプローチを使用する small talk と呼ばれる言語に由来し、ブラケットはそれを送信するために使用されます。メッセージ。メッセージは実際には関数です。

于 2011-07-04T22:11:32.027 に答える
0

では、次のようなステートメントでの使用はどうでしょうか (オンライン クラスの例から引用)。

(この例では、ボタンが押され、ボタンをクリックすると、以下のコードがデフォルト状態と選択状態の間で「トグル」します):

- (IBAction)flipCard:(UIButton *)sender
{
    sender.selected = !sender.isSelected;
}
于 2013-02-14T17:24:09.207 に答える
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 に答える