• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:優先順位の概念について質問)

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

Yanchの回答

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.6

実際に実験してみては? ---------------------------------------------------------------------- public class Test {   public static boolean a() {     System.out.println("--- a()");     return true;   }   public static boolean b() {     System.out.println("--- b()");     return false;   }   public static boolean c() {     System.out.println("--- c()");     return true;   }   public static boolean d() {     System.out.println("--- d()");     return false;   }   public static void main(String[] args) {     if (a() && b() || c() && d()) {     }   } } ---------------------------------------------------------------------- 実行結果 ---------------------------------------------------------------------- --- a() --- b() --- c() --- d() ----------------------------------------------------------------------

wantanton
質問者

お礼

丁重なご回答誠にありがとうございます! 早速実行してみます!

関連するQ&A

  • 優先順位について質問

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

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

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

    • ベストアンサー
    • Java
  • 論理演算について質問

    int a=1,b=0,c=0のとき a==1 && b==0 || (a==1 && b==0) の論理式あったとします 質問1:&&や||の論理演算子について、その『両側』にある2つの関係式を「1つ1つ評価」することにより論理演算する。この認識で正しいですか? 質問2:論理式 a==1 && b==0 || (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)のa==1を評価しtrue、次にb==0を評価しtrue。 よってこの論理式はtrue      ↓ a==1 && b==0 のa==1 を評価しtrue、b==0 を評価しtrue。 よってこの論理式はtrue      ↓ ||は、右の論理式((a==1 && b==0))がtrueで左の論理式(a==1 && b==0 )もtrueだから、論理式全体はtrueで確定しているので、評価を行わない。

    • ベストアンサー
    • Java
  • 論理演算について質問

    今度こそ最後にします、、 質問:&&や||等の論理演算子は、「その両側にある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
  • 論理演算について質問

    int a=1,b=0,c=0のとき a==1 && b==0 || (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:上記前者の論理式a==1 && b==0 || (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ ||は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

    • ベストアンサー
    • Java
  • 「評価」とはどういう意味ですか?

    質問1:初心者にわかりやすいように説明してください。 言語仕様書みてもちんぷんかんぷんでした。。 質問2:評価とは、主に2つの意味があり、1つ目は「演算子がオペランドを演算する事」、2つ目は、式を構成する変数やリテラルについて「その値がいくつであるかを得ること」でしょうか? 例えば、論理演算について、int a=1,b=0,c=0のとき、a==1 && b==3 || a==1 && b==0の論理式があったとします。このとき、評価とは a==1がtrueがfalseかを評価する、→trueの値を得る。 こういった意味でしょうか? 質問3:「リテラルを評価する」というのはどういうことでしょうか?

    • ベストアンサー
    • Java
  • 論理演算について質問

    最初に、前回同じ質問に答えてくださった方へ、いろいろな人から僕の仮説のコンセンサスを得たいので、再度同じ質問しますね。 int a=1,b=0,c=0のとき a==1 && b==0 | (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:前者の論理式、a==1 && b==0 | (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ |は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

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

    演算子の優先順位が良くわかりませんが次の例題はどう考えればよいでしょう? (例)a = 5,b = 2 としたときの,w の値が1 となる演算式は? ア w = ++a / ++b; イ w = ++a / b++; ウ w = a++ / ++b; エ w = a++ / b++;

  • 論理演算について質問

    何度もすみません。 また質問します。これで最後にしたい、、 質問1:&&や||等の論理演算子は、その両側にある2つの“boolean型の式(関係式等)”に対して論理演算を行う。 評価は、両側の式に対して並列に行うのではなく、1つづつ行って行く。 因みに、||は「論理式」を論理演算するこどができる。例えば、 int a=1,b=0,c=0のとき a==1 && b==3 || a==1 && b==0 の論理式があったとします。 この論理式の||は、即に演算されたa==1 && b==3とa==1 && b==0の論理式を演算の対象としている。 質問2:「評価」と「論理演算」って意味は同じですか?違いますか?違うならその違いは? 質問3:a==1 && b==0 || (a==1 && b==0)の論理式は、先に(a==1 && b==0)の論理式を論理演算すると思ってました。でも、以前そのような仮説をもって質問したら、回答者の方に実際違うと指摘されました。何故ですか?だって()の中の論理式なんだから、優先的に演算されるはず。

    • ベストアンサー
    • Java
  • SQL文中の論理演算式の優先順位

    来週、初級シスアドの試験を受ける者です。 「何を今さら」と思われるかもしれませんが、参考書等に載っていなかったので質問します。 SELECT * FROM 表名 WHERE ○○○ OR △△△ AND □□□ 上記のSQL文でWHERE以下の論理演算式を解いていく場合の優先順位を教えて下さい。 問題集の解法では「△△△と□□□の論理積をだした後に○○○との論理和をだす」とありました。 また、「条件式の中の論理演算式の優先順位に注意しなさい」とありました。 この、優先順位を教えて下さい。よろしくお願いします。