タグ付けされた質問 「ternary-operator」

条件演算子は、いくつかのプログラミング言語の基本的な条件式の構文の一部である三項演算子です。また、一般的に三項演算子またはインラインifとも呼ばれます。異なる言語では、同じ構成に対して異なる構文がありますが、すべて条件に基づいて2つのオプションのいずれかを選択します。

16
Javaとは何ですか?:呼び出された演算子とは何ですか?
私は数年前からJavaを扱ってきましたが、最近までこの構造に出くわしていません。 int count = isHere ? getHereCount(index) : getAwayCount(index); これはおそらく非常に単純な質問ですが、誰かが説明できますか?どうやって読むの?私はそれがどのように機能するか知っていると確信しています。 場合はisHeretrueで、getHereCount()呼ばれ、 isHere偽の場合はgetAwayCount()呼び出されます。 正しい?この構成は何と呼ばれますか?

13
PHPで三項演算子(?:)を「if / else」の省略形として使用するにはどうすればよいですか?
このページの例に基づいて、私は以下の機能するコードと機能しないコードのサンプルを持っています。 ifステートメントを使用した作業コード: if (!empty($address['street2'])) echo $address['street2'].'<br />'; 三項演算子を使用した機能しないコード: $test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; // Also tested this (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; 更新 ブライアンの助言の後、エコー$testが期待どおりの結果を出力することがわかりました。以下は魅力のように動作します! echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';

4
<JDK8との互換性におけるJavaの三項演算子とif / else
最近、Spring Frameworkのソースコードを読んでいます。理解できないことがここにあります: public Member getMember() { // NOTE: no ternary expression to retain JDK &lt;8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base class not available on older JDKs) if (this.method != null) { return this.method; } else …

4
式でのAngularjs if-then-else構築
どういうわけか、angularjs式でif-then-else構成(3項演算子)を使用できますか?たとえば、ブール値を返す必要がある関数$ scope.isExists(item)があります。このようなものが欲しい &lt;div ng-repeater="item in items"&gt; &lt;div&gt;{{item.description}}&lt;/div&gt; &lt;div&gt;{{isExists(item) ? 'available' : 'oh no, you don't have it'}}&lt;/div&gt; &lt;/div&gt; 文字列を返す関数を使用できることはわかっていますが、if-then-else構文を式に使用できる可能性に興味があります。ありがとう。

2
Javaの3項演算子はJava 7以降、1つの式しか評価しません-Java 1.6以下ではそれと違いましたか
Oracle Certified Associate Java SE 8 Programmer 1試験に備えて、公式の学習ガイドの3項式に関する次の段落に出くわしました。 三項式の評価 Java 7では、三項演算子の右側の式の1つだけが実行時に評価されます。短絡演算子と同様に、3項演算子の2つの右辺式の1つが副作用を実行する場合、実行時に適用されない可能性があります。この原則を次の例で説明しましょう:[...] 次の例で示すように、2つの式のうちの1つだけが評価されることを示しています。 int y = 1; int z = 1; int a = y &lt; 10 ? y++ : z++; ここでは、yインクリメントのみzですが、そうではありません。 私がつまづいているのは、「Java 7以降...」と書かれている段落(黄色でマークされている)の始まりです。同じコードをJava 1.6でテストしましたが、動作の違いを見つけることができません。私は、Java 1.6が両方の式を段落で与えられた情報からのみ評価することを期待していました。誰かが「Java 7の時点で...」で何を言いたかったのか考えがありますか? 編集:混乱を避けるために:それは質問に要約されます、「Java 7の時点で」と書いているため、Java 6からJava 7に切り替えるときに、3項演算子に関して変更されたものはありましたか?

7
Javascript省略三項演算子
PHP 5.3では、この冗長な三項演算子構文を使用する代わりに、 startingNum = startingNum ? startingNum : 1 ...必要に応じて、3項演算子の省略構文を使用できます。 startingNum = startingNum ?: 1 そして、私はJavaScriptの三項演算子について知っています: startingNum = startingNum ? startingNum : 1 ...しかし速記はありますか?

5
C#とJavaの三項演算子の違い(?:)
私はC#初心者ですが、問題が発生しました。三項演算子(? :)を扱う場合、C#とJavaには違いがあります。 次のコードセグメントで、4行目が機能しないのはなぜですか?コンパイラはのエラーメッセージを表示しますthere is no implicit conversion between 'int' and 'string'。5行目も機能しません。どちらListもオブジェクトですよね。 int two = 2; double six = 6.0; Write(two &gt; six ? two : six); //param: double Write(two &gt; six ? two : "6"); //param: not object Write(two &gt; six ? new List&lt;int&gt;() : new List&lt;string&gt;()); //param: not object …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.