Java(@Android)三元演算子はどうして実際に動作するはずですか?Java(Android)上の三項演算子は、標準に従って動作するはずです。
チェックこれらの簡単な例:
boolean trigger = true;
String myStr_NOK = trigger ? "YES:" : "NO:"
+ " if trigger was TRUE"
+ " this is NOT visible :-o");
String myStr_OK = (trigger ? "YES:" : "NO:")
+ " if trigger was TRUE"
+ " this is visible as should.");
// I think the first comments missed this fact:
trigger = false;
String myStr_NOK = trigger ? "YES:" : "NO:"
+ " if trigger was FALSE"
+ " this IS concatenated AGAIN");
は、今では私の脳だけで飲み込むことを拒否していること、Javaロジックのmasterpeaceです。
Java(Android)の三項演算子を本当にかっこ内にカプセル化する必要がありますか?そうしないと、残りの合成文字列は得られませんか?
参照:三項演算子が角括弧内にないため、myStr_NOKには「YES:」のみが含まれていますか?
this pageには、角括弧が不要であることが明確に記載されています。私は正当に期待しています。 引用:
(注)この例では、カッコはオプションですが、...
EDITこと: 私は再フレーズ私のQをしてみましょう: は、標準では、三項演算子について何と言っていますか?私の見解は、三項演算子のまわりの括弧を用いて、式がFALSEの場合に限り、さらなる文字列連結が実行されるというものです。 TRUEの場合、連結されません。誰もがこの有意義で明白で期待される行動を見つけましたか?
そしてdownvotesだ今、私の元Q: 何を私が間違って取得していますか、世界はただ怒ってしまいましたの?
のように書き出され
世界が狂ったが、それは常にされていているのと同様です。あなたはその記事を誤解しています、それについて話している括弧はあなたが省略しようとしているものと同じではありません。なぜそれが動作しているのかを知りたい場合は、演算子優先順位ルールを調べます。 – Mat
ヒント用のThanx。私は自分自身で正しい答えを見つけられなかったのではないかというと、憤慨するためにダウンボトムを取得しましたか? 私は既にQと尋ねる権利がないのか、それともJavaの標準について感情的になる権利がないのかを知るだけです... –
なぜdownvoteがあるのかわからない。しかし、あなたの記事からフリルを削除すると、そのスタイルが気に入らない人のダウンフォースのリスクを軽減できます。シンプルで技術的に保つ。また、99.999%の時間は "Java(またはC++など)が壊れていますか?"質問は「いいえ、あなたは誤解している」と答える。したがって、その処方も避けてください。 – Mat