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

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

8
三項演算子では許可されているが、ifステートメントでは許可されていないintとしてnullを返す
次のスニペットの簡単なJavaコードを見てみましょう。 public class Main { private int temp() { return true ? null : 0; // No compiler error - the compiler allows a return value of null // in a method signature that returns an int. } private int same() { if (true) { return null; // The same …

5
1行リスト内包表記:if-elseバリアント
それはpythonリスト内包構文に関するものです。特定の範囲の奇数のリストを生成するリスト内包を持っています。 [x for x in range(1, 10) if x % 2] これによりフィルターが作成されます-ソースリストがあり、偶数(if x % 2)を削除しています。ここではif-then-elseのようなものを使用したいと思います。次のコードは失敗します: >>> [x for x in range(1, 10) if x % 2 else x * 100] File "<stdin>", line 1 [x for x in range(1, 10) if x % 2 else x * 100] ^ SyntaxError: …

27
文字列がnullに等しいかどうかを確認するにはどうすればよいですか?
文字列に意味のある値がある場合にのみ、何らかのアクションを実行したい。だから、これを試しました。 if (!myString.equals("")) { doSomething } この if (!myString.equals(null)) { doSomething } この if ( (!myString.equals("")) && (!myString.equals(null))) { doSomething } この if ( (!myString.equals("")) && (myString!=null)) { doSomething } この if ( myString.length()>0) { doSomething } そして、すべての場合において、doSomething私のストリングが空であるという事実にもかかわらず、私のプログラムは。と等しいnull。それで、それで何が悪いのですか? 追加: 問題の理由を見つけました。変数が文字列として宣言され、その結果、nullこの変数に割り当てられたものが"null"!つまり、if (!myString.equals("null"))動作します。

16
Null Coalescingオペレーターを使用するユニークな方法[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2か月前に閉鎖。 この質問を改善する C#でNull融合演算子を使用する標準的な方法は、デフォルト値を設定することです。 string nobody = null; string somebody = "Bob Saget"; string anybody = ""; anybody = nobody ?? "Mr. T"; // returns Mr. T anybody = somebody ?? "Mr. T"; // returns "Bob Saget" しかし、他に何??が使用できますか?三項演算子ほど便利ではないようですが、次の点よりも簡潔で読みやすくなっています。 nobody = null; anybody = nobody == null ? "Bob Saget" …

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

5
?のnull許容型の問題:条件演算子
これがC#.NET 2.0で機能する理由を誰かが説明できますか? Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ...しかし、これはしません: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); 後者の形式では、「 '<null>'と 'System.DateTime'の間の暗黙的な変換がないため、条件式のタイプを判別できません。」というコンパイルエラーが発生します。 前者は使用できないというわけではありませんが、2番目のスタイルは他のコードとより一貫しています。

4
bash if [false]; trueを返します
今週bashを学んでいて、思わぬ障害に遭遇しました。 #!/bin/sh if [ false ]; then echo "True" else echo "False" fi 条件がそうでないように見える場合でも、これは常にTrueを出力します。ブラケットを削除すると機能しますが[]、理由がわかりません。


7
「sizeof(a?true:false)」が4バイトの出力を提供するのはなぜですか?
sizeof三項演算子を使用した演算子に関する小さなコードがあります。 #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4? return 0; } 出力(GCC): 1 1 4 // Why 4? しかし、ここで、 printf("%zu\n", sizeof(a ? true : false)); // Why 4? 三項演算子はbooleanタイプを返し、sizeof …

4
ブール、条件演算子、オートボクシング
なぜこれがスローされるのですか NullPointerException public static void main(String[] args) throws Exception { Boolean b = true ? returnsNull() : false; // NPE on this line. System.out.println(b); } public static Boolean returnsNull() { return null; } これはしませんが public static void main(String[] args) throws Exception { Boolean b = true ? null : false; …

1
小枝:複数の条件があるIF
if小説に問題があるようです。 {%if fields | length > 0 || trans_fields | length > 0 -%} エラーは: Unexpected token "punctuation" of value "|" ("name" expected) in なぜこれが機能しないのか理解できません。まるで小枝がすべてのパイプで失われたようなものです。 私はこれを試しました: {% set count1 = fields | length %} {% set count2 = trans_fields | length %} {%if count1 > 0 || count2 > 0 …

5
カンマ付きの三項演算子が真の場合に1つの式しか評価しないのはなぜですか?
私は現在、C ++ Primerという本を使ってC ++を学んでいます。本の演習の1つは次のとおりです。 次の式の意味を説明してください。 someValue ? ++x, ++y : --x, --y 私たちは何を知っていますか?三項演算子はコンマ演算子よりも優先順位が高いことがわかっています。2項演算子を使用すると、これは非常に簡単に理解できましたが、3項演算子を使用すると、少し苦労します。二項演算子で「優先順位が高い」とは、式の前後に優先順位の高い括弧を使用できることを意味し、実行は変更されません。 三項演算子の場合は、次のようにします。 (someValue ? ++x, ++y : --x, --y) コンパイラーがコードをグループ化する方法を理解するのに私を助けない同じコードを効果的にもたらします。 ただし、C ++コンパイラでのテストから、式がコンパイル:されることがわかり、演算子自体が何を表すことができるかわかりません。したがって、コンパイラーは三項演算子を正しく解釈するようです。 次に、2つの方法でプログラムを実行しました。 #include <iostream> int main() { bool someValue = true; int x = 10, y = 10; someValue ? ++x, ++y : --x, --y; std::cout << …

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 />';

7
Javascript Ternary演算子による演算子の優先順位
このコードの最初の部分(+ =)を三項演算子と組み合わせて頭を抱えているようには見えません。 h.className += h.className ? ' error' : 'error' このコードが機能する方法は次のとおりです。 h.className = h.className + h.className ? ' error' : 'error' しかし、それは私のコンソールにエラーを与えるため、正しくありません。 だから私の質問は、このコードをどのように正しく解釈すべきかということです?

8
CSS「and」および「or」
いくつかの入力タイプのスタイリングから分析する必要があるので、私はかなり大きな問題を抱えています。私は次のようなものを持っていました: .registration_form_right input:not([type="radio") { //Nah. } しかし、私もチェックボックスのスタイルを設定したくありません。 私はもう試した: .registration_form_right input:not([type="radio" && type="checkbox"]) .registration_form_right input:not([type="radio" && "checkbox"]) .registration_form_right input:not([type="radio") && .registration_form_right input:not(type="checkbox"]) 使い方は&&?||もうすぐ使う必要があり、使い方は同じだと思います。 アップデート: 私はまだ使用する方法がわからない||と&&、正しく。W3ドキュメントに何も見つかりませんでした。

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