↑ページトップへ
表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
【揺花草子。】(日刊版:2019年)  作者: 篠木雪平
2019年03月
PR
77/366

【揺花草子。】<その2606:ロジカルシンキング。>

 【揺花草子。】<その2606:ロジカルシンキング。>


 Bさん「論理演算子には優先順位が厳密に定められていますね。」

 Aさん「んっ・・・ん?」

 Cさん「阿部さんまさか論理演算子って何とか言わないわよね?」

 Aさん「いやもちろんわかってますよ?

     && とか || とかですよね?」

 Bさん「ちゃんと解ってるじゃない。」

 Aさん「やっぱりそう言う話なんだ・・・」

 Bさん「論理演算子に限らず、四則演算子でも何でも

     演算子には優先順位が決められている。

     小学生の算数で言えば 1 + 2 * 3 は 9 ではなく 7 だよ、

     足し算引き算より掛け算割り算が優先だよと教えられるね。」

 Aさん「そうだね。」

 Cさん「掛け算は何よりも優先で尊いと言う事ね。」

 Aさん「あなたの言ってる掛け算は違う掛け算でしょう。

     尊いとかじゃないですからね。」

 Bさん「同じように、プログラミングの世界では様々な演算子があり、

     それ毎に優先順位が決まっている。

     例えば

     let a = 5;

     let b = 10;

     let c = a++ * ++b;

     ていうプログラムがあったとしたら、答えは 66 になるよね。」

 Aさん「うん・・・インクリメント・デクリメント演算子は

     前置か後置で評価タイミングが変わるって言うあれだね。」

 Bさん「で、件の論理演算子ですよ。」

 Aさん「はぁ。」

 Cさん「言語によってどういう記号になるかは異なるわよね。

     条件の結合、いわゆる論理 AND と言う意味では

     多くの言語で「&&」が用いられると思うけれども、

     SQL なんかだとそのまま「AND」よね。」

 Aさん「確かに。」

 Bさん「同様に論理 OR は「||」と書いたりそのまま「OR」だったりする。」

 Aさん「はい。」

 Bさん「そして論理 AND と論理 OR では、前者の方が優先だと言うのも基本ルールです。」

 Aさん「そうだね。」

 Cさん「let a = true;

     let b = false;

     let c = false;

     だった場合、

     let d = a || b && c;

     だとしたら d は true よね。

     これは「&&」の方が「||」よりも優先するからだわ。」

 Bさん「仮にこれが

     let d = (a || b) && c;

     だとしたら d は false になる。

     カッコによって優先順位が変わったからだ。」

 Aさん「うん。」

 Bさん「そうなると、ですよ。」

 Aさん「え?」


 Bさん「『Earth, Wind AND Fire OR Die』は

     『大地と風、および、炎もしくは死のどちらか』ではなくて

     『大地と風および炎、もしくは死』となるし

     『Simon And Garfunkle Or Die』は

     『サイモン氏、およびガーファンクル氏もしくは死』でなく

     『サイモン氏およびガーファンクル氏、もしくは死』

     となるよね。」

 Aさん「『Or Die』の必要性!!!!!」


 プログラマ泣かせ。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。