検索

ホームページ  >  に質問  >  本文

javascript - 三項算術式 3<8?(9<6?7:5):2>0?4:1 の値は Java と PHP で異なります。なぜですか?


Java と js では評価結果が 5 ですが、PHP では 4 です。
式が標準的な方法で書かれていないからでしょうか?それとも他の理由ですか? .net と C 言語を使用して他の人に試してもらいましたが、結果はすべて 5
[解決済み] 回答ありがとうございます。私の推測では、式があまり標準化されていないためです。いつも三進法は右から左のような気がするので、最後の括弧を省略してしまいました(以前よくそう書いていました)修正します。標準化のため、3<8?(9<6)とします。 ?7:5):(2>0 ?4:1)

三叔三叔2758日前1069

全員に返信(6)返信します

  • typecho

    typecho2017-06-08 11:04:07

    三項演算子の結合方向の問題:
    javaは右から左へ。 3<8?(9<6?7:5):(2>0?4:1)3<8?(9<6?7:5):(2>0?4:1)
    php 从做向右。等效于(3<8?(9<6?7:5):2)>0?4:1php の do から右に相当します。 (3<8?(9<6?7:5):2)>0?4:1 と同等です

    そのため、曖昧なコードの生成を避けるために、記載すべき括弧は省略しないほうが良いです

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-08 11:04:07

    PHPの三項演算の組み合わせ順序が逆です
    http://www.jianshu.com/p/124f...

    返事
    0
  • 代言

    代言2017-06-08 11:04:07

    phpの優先度の解釈がjavaやjsなどの言語とは違うのでしょう(3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1

    と解釈されるかもしれません。

    返事
    0
  • 某草草

    某草草2017-06-08 11:04:07

    PHP では次のようになります:

    リーリー

    それでは 4;

    JavaScript では次のようになります:

    リーリー

    それでは5です。

    演算子の優先順位がわからない場合は、括弧内を埋めてください。 ^_^

    返事
    0
  • 怪我咯

    怪我咯2017-06-08 11:04:07

    正解は二階~~~~~~

    返事
    0
  • 欧阳克

    欧阳克2017-06-08 11:04:07

    この写真を入力すべきではないでしょうか?

    返事
    0
  • キャンセル返事