-1

重複の可能性:
Objective-C の疑問符とコロン (?: 三項演算子) は何を意味しますか?

次のような構文を使用するコードを見たことがあります...

someValue = someBoolean ? valueOne : valueTwo;

または、このようなもの。

私はこれを使用したことがなく、それが何と呼ばれているのかわかりません。

誰かがそれを使用する方法を説明するか、それに関するリソースへのリンクを提供してください.

4

6 に答える 6

8

三項演算子です。

状態を評価しsomeBooleanます。

true の場合は、に渡しvalueOneますsomeValue

false の場合は、に渡しvalueTwoますsomeValue

それは次と等しい:

if(someBoolean)
{
   someValue = valueOne;
}
else
{
   someValue = valueTwo;
}

これは、三項演算子について説明する良いリンクです

于 2013-01-08T13:51:39.190 に答える
3

これは三項演算子 ( ?: ) と呼ばれます。

1 ? 2 : 3

1が条件です。

2 は 1 が真のときに実行されます。

1 が false の場合、3 が実行されます。

類似: (以下は実行中のコードではありません。1、2、3 は、一部の式とステートメントのプレースホルダーのみを示しています。

 if(1){ //condition
     2 //true
 }
 else{
     3 //false
 }

次のように短縮できます。

int bigger;
(10<100) ? bigger=100 : bigger=10;

簡単に言えば:

int bigger = (10<100) ? 100 : 10 ;

ノート:

その優先順位は最も低く、if-else および switch case ステートメントよりもはるかに遅くなります。

于 2013-01-08T13:52:12.127 に答える
2

ですternary operator( としても知られていますconditional operator)。このリンクで説明を見つけることができます。

基本的に、あなたの式は、someBooleantrue の場合は someValue が取得されvalueOne、そうでない場合は取得されると言っていますvalueTwo

次のようになります。

 if(someBoolean)
 {
    someValue = valueOne;
 }
 else
 {
    someValue = valueTwo;
 }

これにより、コードの可視性が低下します。1 つの条件に依存する値を割り当てたい場合は、この演算子を使用することをお勧めします。

に固有の表現ではないことに注意してください。およびObjective-Cで使用できます。CC++

于 2013-01-08T13:53:07.487 に答える
0

割り当ての結果は、条件が true の場合は valueOne になり、条件が false の場合は valueTwo になります。

こちらのウィキペディアをご覧ください。他の言語にも当てはまります。スキップして C 構文の例を参照してください。

于 2013-01-08T13:52:35.807 に答える
0

ユーザーが何らかの質問に答える必要があり、間違っていればビューの背景色を赤に、正しければ緑に変更するとします。

- (void)handleAnswer:(BOOL)correct {
    UIColor *color = (correct) ? [UIColor greenColor] : [UIColor redColor];
    self.view.backgroundColor = color;
}
于 2013-01-08T13:53:26.853 に答える
0

以下と同じように動作します

if (someBoolean)
{
    someValue = valueOne;
}
else
{
    someValue = valueTwo;
}
于 2013-01-08T13:56:11.800 に答える