• ベストアンサー

優先順位について質問

優先順位とは、結合という観点において、「それが高い演算子ほどオペランドを先に結び付ける」こういうことでしょうか? 質問2:結合規則とは、同じ優先順位の演算子において、「より右にある演算子の結びつきが優先されるのか、あるいは、より左にある演算子の結びつきが優先されるのか」を示す概念。 こういうことでしょうか?

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

回答1. はい,そうです。 回答2. 優先順位が高い演算子/低い演算子はどれか http://okwave.jp/qa/q6794875.html の私の回答ANo.1   かつ 同じ優先順位の演算子においてはどの結びつきが優先されるのか を示す概念ですね。結合規則の中には演算子の優先順位も含まれるということです。

wantanton
質問者

お礼

丁重なご回答ありがとうございます!!! わかりやすかったです!

関連するQ&A

  • 優先順位の概念について質問

    質問1:優先順位や結合の規則とは、本質的に「優先順位の高い演算子ほど、オペランドをより先に結び付けられる」であり、「演算実行の優先順位」ではありませんよね? 何故そう思ったかというと次の論理式をご覧ください。 a==1 && b==0 || a==1 && b==0 ※int a==1,b==0 この論理式がtureになるプロセスとして、 a==1を評価→true    ↓ b==0を評価→true ↓ &&は、a==1 && b==0の論理式をtrueと評価 ↓ ||は、左側の論理式a==1 && b==0がtrueだから、論理式全体がtrueだと判断し、 右側の論理式の評価を行わない。 プロセスとして、こうだと思うんですけど、優先順位として||は&&より低いですよね? 優先順位が「演算実行の優先順位」を意味するならば、右側の論理式のa==1 && b==0を評価してから||の演算をするはずで矛盾します。 よって、優先順位とは本質的に、「優先順位の高い演算子ほど、オペランドをより先に結び付けられる」であり、「演算実行の優先順位ではない」といえる。 質問2:「優先順位の高い演算子ほど、オペランドをより先に結び付けられる」であれば、例えば、上記の論理式の左側を例に挙げていえば、 b==0は&&と||の2つが共有してるが、&&の方が優先順位が高いから、b==0を先に結び付けてる、その意味でも「優先順位の高い演算子ほど、オペランドをより先に結び付けられる」 は正しいですか?

    • ベストアンサー
    • Java
  • 前置単項演算子の優先順位や言葉の定義

    javascriptの場合 ++ や -- は前置きなら右結合、後置きなら左結合ということのようですが、この結合規則の具体例ってどういったものでしょうか。 そして例えば++a--だとどっちが先に評価されるのでしょうか。(結果は同じだとしても) また2項演算子の + や - などの結合規則は理解できるのですが、単項演算子の場合に結合規則が具体的に何のことを言っているのかどうもよくわかりません。 例えば !--abc や ++a-- のように単項演算子を並べた場合も、どのように結合して何をもって右とか左と言うのか、という点を明確にしたいです。 (特にjavascriptに限った話ではないのでjavaやcなど他の言語での解説でもかまいません) いままであやふやにしてしまっていた言葉や定義をここではっきりしたいです。 具体的な例で示していただけると助かります。

  • 演算子の結合性

    演算子のリストに結合性という項目があります. 左から右,または右から左と書いてあると思います. 演算子のリストは上にある順から優先的に計算されるので, 例えば, ex) int i = hoge + bar * baz; としたとき,bar * baz が先に計算されることは理解しています. しかし掛ける,または足すオペランドの結合性がよくわかりません. *(掛ける)は「左から右」と一覧があるサイトには書いてあります. この「左から右」は,なにから見て左(右)なのでしょうか? C言語を何年か使っていますが,コンパイラが文をどのように解釈しているのか いまだによくわかっていません. よろしくお願いします.

  • 論理演算について質問

    今度こそ最後にします、、 質問:&&や||等の論理演算子は、「その両側にある2つの型booleanのオペランドに対して論理演算する」こういうことでしょうか? YESかNOでお答えいただいた上で、補足があればお願いします^^ 質問2:私は、括弧内の式が優先的に計算されると思って、その旨の質問をしたところ以下のような回答が返ってきました。 「優先されるのは結合順であって、評価順序ではないです。例えば、a==1 && b==3 || a==1 && b==0の式ににかっこを追加して、a==1 && (b==3 || a==1) && b==0とすると||の第1オペランドは b==3、第2オペランドは a==1 に変わります。」 ここでいう「結合順」の「結合」とはどういう意味ですか? 私の仮説では、「ある演算子がオペランドを結合している」、こういうことでしょうか? そして、括弧を用いることにより、ある演算子のオペランドの結合を変化させ、演算子は その括弧内の両側のオペランドをつなぐ、こういうことでしょうか? YESかNOかでお答えください。その上で何か補足があればお願いします^^

    • ベストアンサー
    • Java
  • ()の役割について

    以下は、()の定義として正しいですか? 定義1:優先順位について、()内にある演算子の方が高くなる。 例えば、 「n=(10+10)/10;」は、本来は除法のほうが優先順位が高いから10/10という計算式から行うが、()により先に10+10が計算され、それから、20/10が計算され、nは2となる。 結合の規則については、()を用いるとその結合の規則の逆になる。 例えば、 n=80/10/1/(20/5);は、()が無ければ左から計算されるが、()があるから、「(20/5)」から計算され、あとは結合の規則通り左から計算されるから、nは2になる。 定義2:「キャスト演算子」としての役割がある。具体的には、大きいデータ型から小さいそれへの型変換を可能にし、「データが失われる可能性をプログラマが承知している旨」を明示する「明示的な型変換」の役割がある。

    • ベストアンサー
    • Java
  • c言語 優先順位について

    c言語 優先順位について 下記の優先順位で1番目は、()関数呼び出しであれば左結合なので(unsigned char)を呼ばれないで、(++(f) -> fpi)[-1]を呼ばれる理由を教えて頂きたい。      (unsigned char)(++(f) -> fpi)[-1]

    • ベストアンサー
    • CGI
  • 評価について質問

    質問1:式を構成する要素(変数やリテラル)の評価と演算について、左から右に評価していく過程で、その式の演算子の優先順位の高い順から、その演算子の取るリテラルの評価が終わり次第、計算をする。 よって、オペランドを取る演算子の位置によっては、評価と演算が交互に行われることもある。 たとえば a*b+cという式があれば、 aを評価→bを評価→*の演算→cを評価→+の演算という計算プロセス。 これはつまり、*は、この式において最も優先順位が高いから、aとbを評価した直後、演算を実行したといえる。 何故僕はこんな質問したかというと、全ての要素の評価が終わってから、演算が実行されるものだと思ったからです。 質問2:「式を評価する」とは、変数やリテラルの評価と優先順位を考慮した演算を実行し、そしてその式の答えを求める一連のプロセスのことでしょうか? 質問3:変数の評価とは、「ソースコードの中でその単語(token)を変数だと解釈することで、そのtokenがjavaの変数名の規約に従っていることかつ、それが事前に宣言されていることを 検査した上で、その変数の値を解釈する」こういうことですか?

    • ベストアンサー
    • Java
  • 演算子の優先順位

    インクリメントと四則演算の優先順位に関して迷っています。 手持ちの教材では、++,--は四則演算+,-,*,/よりも上位なはずなのですが、どうやら後から計算されているようなのです。 【具体例】 g=10, h=5としたときに i = ++g / h-- とすると、i = 2となるのが、わかりません。 なぜでしょうか?

  • 後置き++演算子の優先順位に関して

     お世話になります。C/C++初心者です。以前から気にな っていましたが、ホームページのC言語の講座を見ていま すと、後置き++(--)の優先順位がドット演算子と並んで トップに位置付けされているのがよくあります。  代入演算子よりも低く、むしろ一番低順位なのではと、 疑問に思っていますが、何か理由があるのでしょうか。  まったく初歩的な質問ですがこの際ご教授願えればと 思いました。どうぞよろしくお願い申し上げます。

  • 彼の優先順位

    何度もこちらで相談させてもらっています。 同じような質問お許しください。 仕事>自分>家族(親や姉や甥姪)>友人>私 このような優先順位の彼とこの先幸せになれるでしょうか? 不器用な人です。 とにかく私の優先順位が低いです。 付き合って一年半ほどです。 連絡などは元々マメじゃなかったのですが、最近になり、努力してくれるようになったのは感じます。 週一お互い時間が合うときに会ってます。 彼なりに大事に思ってくれているみたいですが、本当に"思っているだけ"で行動が伝わりません。 無理しない付き合いが良いのはわかりますが、もう少したまには無理をしてほしいです。 仕事より私を優先してほしいとは言いません。 仕事以外の事の優先順位を、うまくたまには並び替えてほしいです。 私はわがままでしょうか? 忙しい中週一会えてて、連絡が少しマメになったことを認め、それだけでも変わってくれたと喜ぶべきなのはわかっています。 付き合いが長くなり、私が傲慢になってしまっているのでしょうか? 彼、自営業30代半ば、私20代半ばです。

専門家に質問してみよう