問題タブ [operator-precedence]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python演算子の優先順位
Pythonのドキュメントによると*
、/
同じ優先順位があります。
Pythonの式は左から右に評価されることを私は知っています。
私はそれを信頼して、それが常に
括弧を避けることにj*j/m
等しいと仮定できますか?
これが事実である場合、これは一般的に同じ優先順位を持つ演算子に当てはまると仮定できますか?(j*j)/m
ps:質問は私の目的には問題ないので、括弧なしの整数のみのコード(上記の例のような)を読んでいるときに思いついたのですが、当時は非常に疑わしいようでした。
ruby - Rubyでの演算の順序に関する質問
2つの式の同等性をテストするクラスのインスタンスを初期化しています。
数式の計算値は実際には次のようになります。
これら2つのインスタンスの同等性を確認するために新しいクラスを作成したとき、結果に少し驚いています。
RubyChem::BalanceChem初期化メソッドは次のとおりです。
なぜrubyはformula1とformula2のfw値をフェッチして、それらの値が等しいかどうかをチェックしないのですか?Rubyでの操作の順序は何ですか?Rubyは何をしていますか?この問題についての理解が不足していることがわかります。どうすればこれを機能させることができますか?前もって感謝します。
perl - Perl でのリスト演算子の優先順位
「Beginning Perl」という本を読んでいるのですが、次の 2 つのステートメントが書かれています。
最初の行は改行なしで何も出力せず、2 行目は改行なしで 1 を出力します。
出力について混乱しています。著者によると、2 番目のステートメントは次のように言って奇妙な出力を示します。
しかし、最初のステートメントが同じでないのはなぜですか? 印刷の優先順位と関係があると思いました。&& は print よりも優先順位が高いため、最初に評価されてから出力されます。「and」は print よりも優先順位が低いため、6 > 3 が出力されますが、print は 1 を返し、それが「and」で評価されます。しかし、これは本当に意味がありません。
リスト演算子の優先順位がどのように機能するかについて Perl のドキュメントを読みましたが、この例をまだ理解していません。2 つのステートメントを分析して、最初に出力されるものを教えてください。また、Perl のドキュメントで、リスト演算子が「左方向」および「右方向」であると言及されている場合の意味を説明できますか? ありがとう。
皆様、ご回答ありがとうございます。私は今それを理解しています。私は確かにcjmが言ったことをやっていて、左向きと右向きのリスト演算子があると思っていました。意味がわかったので、全体を理解しました。
c++ - 最適化されたVS2008での「<<」および「++」の演算子の優先順位
演算子の優先順位が尊重されていないように見える、奇妙なVS2008C++の問題で立ち往生しています。
私の質問は、これの出力は何ですか?
通常、++
は優先され<<
ますよね?または<<
、?よりも高い優先順位を与える関数呼び出しのように見なされ++
ますか?これに対する100%正しい標準的な答えは何ですか?
確認するために、新しい空のプロジェクト(VS2008コンソールアプリ)を作成し、このコードのみをメインに貼り付けました。結果は次のとおりです。
ところで、次の例ではまったく同じ結果が得られます。
また、リリースで最適化のタイプを変更しても効果はありませんが、最適化を無効にすると、他の構成と同様に「ゼロ1」が出力されます。
c - 同様の構文ですが、1 つはエラーを表示しますが、もう 1 つはエラーを表示しません
やあみんな
今日はこのプログラムを作りました
最初のエラーが表示され、2 番目のエラーが表示されないのはなぜですか? ( ) だけで 1 つのプログラムがコンパイルされます。なんで?
――シュルティ
c - C の入力パズル
出力は 7 と 14 です
しかし
ユーザーが与える入力は 5 出力は 7 と 13 です
なぜ?
c - gccでの「i=i--」の動作に関する特定のドキュメントはありますか?
繰り返しになりますが、私たちの最も愛されている「i=i--」のような問題です。C99には次のものがあります。
6.5式#2:前のシーケンスポイントと次のシーケンスポイントの間で、オブジェクトは保存された値を最大で1回変更する必要があります
70)この段落は!!未定義!!をレンダリングします 次のようなステートメント式
しかし、未発見の振る舞いについては、ランダムな出力から「文書化された方法でのプログラムの実行」(c99 3.4.3)までのバリエーションが存在する可能性があります。
だから、質問:
gccは、i = i ++、i = i--などのステートメントの動作を文書化していますか?
実際のコードは
javascript - JavaScript演算子の優先順位ロジックは私を混乱させます
私が見つけることができる演算子の優先順位テーブルは次のとおりです。
https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence
表によると、「>>」と「*」はどちらも左から右に関連付けられており、「>>」の優先順位が高いため、a >> b * cは(a >> b)*として説明する必要があると思います。 cただし、Firefoxでのテスト(Firebugを使用)では、次のように教えてください。
これは私を大いに混乱させます、代わりにそれは16であるべきですか?
OK、優先順位が明確でない場合は常に括弧を使用する必要があることを理解していますが、ルールがあるか、何が起こっているのかを説明する必要がありますか?
c - p と q が同じオブジェクトを指している場合、「*p = ++(*q)」は未定義ですか?
シーケンス ポイントについて読んだ後、i = ++i
未定義であることを知りました。
では、次のコードはどうでしょうか。
p と q の初期化が何らかの (複雑な) 条件に依存しているとします。そして、それらは上記の場合のように同じオブジェクトを指している可能性があります。何が起こるか?定義されていない場合、どのツールを使用して検出できますか?
編集: 2 つのポインターが同じオブジェクトを指していない場合、C99 制限を使用できますか? それは「厳格」の意味ですか?
c++ - c の式と c++ の式の違い
このプログラムは g++ コンパイラで動作しますが、gcc では動作しません。i++++ または ++i++ と書くと、cpp でも機能しません。c-expression と c++-expression には違いがあると思います。L値とR値について誰か説明してくれませんか?