2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

論理演算子の優先順位

2
Posted at

今回は条件分岐の問題に挑戦!論理演算子に優先順位があるんだと初めて知った!


問題概要

整数A, B, C, Dが与えられる。

  • AとBが等しい または  CとDが等しい
  • かつ AとCが等しい

この2つの条件がともに真のとき、またそのときに限り真となる条件式を書くがいい!


入力例:

1 1 1 2

出力例:

1




❌NGコード:

const rl = require('readline').createInterface({input:process.stdin});


rl.once('line', (input) => {
    const [A, B, C, D] = input.split(' ').map(Number);
    
    console.log(A === B || C === D && A === C);
    
    
    rl.close();
});



✅ OKコード:

console.log((A === B || C === D) && A === C);



💡論理演算子の優先順位

この問題のポイントは「論理演算子の優先順位」!


&&(AND)は ||(OR)よりも優先順位が高い。

つまり A || B && CA || (B && C) として扱われてしまったことによって、
❌不正解となった…(´;ω;`)




✅ 解決策:迷ったら括弧 ( ) を使おう!

複雑な条件やミスが起きそうなときは、優先順位を明示するために () を使うのがベスト!


if ((A === B || C === D) && A === C) { ... }

OR を先に評価したい → () で囲む!




📝論理演算子の優先順位(高い順)

!  >  &&  >  ||
  • !(NOT)が最優先
  • 次に &&(AND)
  • 最後に ||(OR)




🗒️まとめメモ

  • &&(AND)は ||(OR)よりも優先順位が高い

  • ()で優先順位を指定するとよい

  • 比較は == でもOKだけど、厳密等価 === を使うのがベスト




僕の失敗談(´;ω;`)と解決法🐈

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?