[解決済み] Java の ?: 演算子は何と呼ばれ、何をするのですか?
2022-03-03 16:58:30
質問
私は数年前からJavaを使用していますが、最近までこの構成に出会ったことがありません。
int count = isHere ? getHereCount(index) : getAwayCount(index);
これはおそらく非常に単純な質問だと思いますが、どなたか解説していただけませんか? どのように読めばいいのでしょうか? 私はそれがどのように機能するかについてかなり知っていると思います。
-
もし
isHere
が真である場合。getHereCount()
が呼び出されます。 -
もし
isHere
が偽の場合getAwayCount()
が呼び出されます。
正しいですか? この構成は何と呼ばれていますか?
どのように解決するのですか?
の短縮形ですね。
int count;
if (isHere)
count = getHereCount(index);
else
count = getAwayCount(index);
というものです。 条件演算子 . 多くの人が(間違って)こう呼びます。 三項演算子 なぜなら、Java、C、C++、そしておそらく他の多くの言語でも、唯一の三項演算子だからです。しかし、理論的には 可能性がある は1つしかないのに対して、他の三項演算子があります。 条件演算子 .
正式名称は Java言語仕様書 :
§15.25 条 条件演算子 ?
条件演算子
? :
は、ある式のブール値を用いて、他の2つの式のうちどちらを評価すべきかを決定する。
どちらの分岐も、戻り値を持つメソッドにつながる必要があることに注意してください。
第2、第3オペランド式がvoidメソッドの呼び出しであることは、コンパイル時のエラーとなる。
実は、式文の文法によって、( §14.8 ) では、条件式が void メソッドの呼び出しが出現するようなコンテキストに出現することは許されません。
では、もし
doSomething()
と
doSomethingElse()
は void メソッドであるため、これを圧縮することはできません。
if (someBool)
doSomething();
else
doSomethingElse();
をこの中に入れてください。
someBool ? doSomething() : doSomethingElse();
シンプルな言葉
booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] クエスチョンマーク"? "とコロン": "演算子は何に使うのですか?重複
-
[解決済み] Javaにおける"? "の意味とは?重複] [重複] [重複