プログラマー(」´□`)」助けてぇぇぇぇぇぇぇええ

1: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:27:30.053 ID:ju4l0PV/0

if ( 0 <= X && X < 999 ){}
↑これを

↓こう書けるようにしない理由教えて
if ( 0 <= X < 999 ){}

長年の疑問なんだ

41: 以下、5ちゃんねるからVIPがお送りします🐙 2022/06/26(日) 12:07:38.133 ID:khHPOo7G0

>>1

職業PGだけどまず
> if ( 0 <= X && X < 999 ){}

これ読みづらい
X >= 0 && X < 999っていうふうに変数先に統一する
うろ覚えだけどコーディング規約で統一を推奨してた気が

> ↓こう書けるようにしない理由教えて
> if ( 0 <= X < 999 ){}

する理由がない
人間でコード慣れしてる俺がこれ見ても混乱する
あなたにはこの書き方のほうが分かりやすいってこと?

 

45: くーるびゅー 2022/06/26(日) 12:27:03.371 ID:Zojq2G060
>>41
いや数学習ってた時はこう教わったじゃん

 

46: 以下、5ちゃんねるからVIPがお送りします🐙 2022/06/26(日) 12:30:18.269 ID:khHPOo7G0
>>45
そうなんだ
数学習った学生時代よりPG時代のが長いんでコードの書き方のほうに頭が完全に慣れちゃってる
たしかに>>1みたいに疑問に思うほうが普通の人には自然なことなのだろうね。

 

43: 以下、5ちゃんねるからVIPがお送りします🐙 2022/06/26(日) 12:14:10.146 ID:khHPOo7G0

>>31
いい説明だね

複数の比較式って結局、内部的に複数の比較を順番に処理してるので、人間に見やすい書き方にはあえてしてない気がする

Pythonの比較演算子調べたら>>1の書き方できるみたい。cガイジなので知りませんでしたすいません。謹んでお詫び申しあげます。

 

50: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 13:07:56.846 ID:x2kutocZ0

>>43
>>人間に見やすい書き方にはあえてしてない気がする
高級プログラミング言語ってそもそも人間が読み書きするためにあるものではあるんだけど

>>複数の比較式って結局、内部的に複数の比較を順番に処理してるので、
実行するのは結局コンピュータであり順番の処理であり
人間のための高級プログラミング言語とは言ってもやはりコンピュータありきなんだよね

だから

>>if ( 0 <= X < 999 ){}
こういう2つの比較のまとめ記述って処理の順番が曖昧になってしまうし
「これ、コンピュータが内部でどういう順番で処理するんだよ」って不安に感じてしまう

ひとつひとつの比較が別々に分かれている記述の方が安心?できるし
それを書こうとすると結局
>>if ( 0 <= X && X < 999 ){}
こうなんだよな

 

55: 以下、5ちゃんねるからVIPがお送りします🐙 2022/06/26(日) 13:35:38.965 ID:khHPOo7G0

>>50
>> 高級プログラミング言語ってそもそも人間が読み書きするためにあるものではあるんだけど

それはその通りだけど意図したのとは違う
文言としてはあなたの言うとおりだが…言語化難しいな

人間が読みやすく作るにしても程度ってもんがあるでしょう
たとえば日本人に分かるように日本語のプログラミング言語なんてのもあるにはあるがそこまで流行ってなかったり

正直いって言語なんて人間にとって全然優しくないけど
ある程度のところで制限しないとどうしようもないよね
…ってので伝わると嬉しいんだけど

 

2: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:29:08.488 ID:ju4l0PV/0
理由がわかる玄人いない?

 

3: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:29:23.879 ID:ju4l0PV/0
これは何かの陰謀だよ

 

4: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:29:51.961 ID:ju4l0PV/0
&& 使わせたいマンが言語開発者にいるんだろ

 

5: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:30:15.729 ID:ju4l0PV/0
明らかに&&邪魔だし可読性悪いよなぁ?

 

6: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:30:52.700 ID:ju4l0PV/0
おい!寝てんのかVIPのプログラマー

 

7: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:31:46.048 ID:0gdeBbt2a
サッカーに対してなんで手を使わないの?って言ってるようなスレ

 

8: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:32:04.123 ID:ju4l0PV/0
>>7
全然違う
例え下手

 

9: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:33:44.257 ID:DohptBFU0
書けるやつは書けるだろ
cじゃできなかったっけ?

 

12: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:35:55.955 ID:ju4l0PV/0
>>9
書ける言語あるのか
可読性からして賢い選択だな
やっぱりC言語開発者は一味違うわ

 

10: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:34:32.318 ID:d9WC8UNy0
論理値を返す式 && 論理値を返す式
だから何もおかしくないが

 

13: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:38:34.914 ID:ju4l0PV/0
>>10
論理値を返す式を組み合わせることってできないの?
内部で二回計算してくれていいからさ

 

28: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:45:36.258 ID:d9WC8UNy0

>>13
SQLにあるBETWEEN演算子はソレっぽいことができるが
それ以外できないという使い所の少ないものでもある
しかも以上以下だから、に対応してないんだよな

結論として、ないものは自力で作れ

 

11: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:35:37.408 ID:F9k7BJae0
最小単位がビット演算だからでは?

 

16: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:39:32.988 ID:ju4l0PV/0
>>11
なんかそれっぽいな
なんとなくしかわからんけど

 

14: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:38:51.024 ID:xT35OKoma
言語によってはかけるよ

 

19: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:40:10.078 ID:ju4l0PV/0
>>14
最高の言語だな
これ実装してる言語開発者はセンスある

 

15: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:39:11.408 ID:dh4YP+Mi0
知ってる限り書ける言語ないぞ

 

20: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:40:28.931 ID:xT35OKoma
>>15
pythonかける

 

17: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:39:41.790 ID:0+n8Cy9R0
可読性重視にしたいのであれば関数にすればよくね?

 

23: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:42:00.853 ID:ju4l0PV/0
>>17
ifに変わる独自関数って本人じゃないとわかりにくくない?

 

25: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:42:30.383 ID:XZa1shFw0
>>23
それifか?

 

27: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:45:28.972 ID:0+n8Cy9R0
>>23
boolを返す関数ならわかりやすいよ
静的型付けできない言語は無くなれ

 

18: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:40:02.228 ID:9QhWCwoP0
書ける言語もある
演算子は基本二項演算であるってルールから外れると複雑になるからじゃない

 

21: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:40:52.250 ID:XZa1shFw0
書けてもあんまり嬉しくないからじゃね?

 

24: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:42:29.227 ID:BTHJaXSyM
使わないから

 

26: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:45:09.638 ID:ju4l0PV/0

Python始めるわ
ありがとう!

PHP,Java,Object-C,C#,JavaScriptのばーか!!

 

29: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:47:11.099 ID:x2kutocZ0
書ける言語もあるって言うけど
それって1が望んでいる結果と違う結果にならなくね?

 

31: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 10:57:32.659 ID:bICL/XDPd

説明しよう

0 <= X < 999
これをまず分解してみると
始めに0 <= Xの判定がある
これの返却値は”論理型”だ
それに対して次の判定は”論理型”と< 999を比較してしまう
この時点で静的型付けの言語はエラーになるだろう

動的型付けの場合はどうなるだろうか
おそらくだがjavascripの場合
0 <= Xの返却値は0か1かもしれない。仮に0だとしよう
その次の判定で0 < 999と判定することになるだろう。
バグが生まれる可能性があるから結論としては 0 <= X && X < 999 と書いたほうがいい

 

34: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 11:04:09.764 ID:x2kutocZ0

>>31
>>バグが生まれる可能性があるから
だよな

記述してエラーにはならない言語でも
それはたぶん1が望んでいる事とは違う動作をするよね

 

38: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 11:36:03.742 ID:ju4l0PV/0
>>31
天才

 

35: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 11:09:51.832 ID:CNz2Z8uY0
対応してる言語でもコンパイルの時にはどうせ分離して&&に直される

 

37: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 11:28:36.543 ID:RH93bdxJM
そういうとこに敏感なのはプログラミングのセンスありそうではある

 

48: 以下、5ちゃんねるからVIPがお送りします 2022/06/26(日) 12:57:50.063 ID:lWXj5M9s0
文法増やすほどの重要性がないから

管理人からひと言

論理値

引用元

http://viper.2ch.sc/test/read.cgi/news4vip/1656206850/

関連記事

  1. ワイ圧倒的情報弱者、人の書いた数千行のpythonのコードを手直しで修正する

  2. 東京でプログラマー8年やって田舎に戻ってきたけどどんな仕事があるだろうか

  3. そろそろプログラマーは必要ないんじゃない?

  4. ワイITエンジニア、動作確認テストがつらい

  5. プログラミングにMacが向いてるわけ無いじゃん

  6. カテゴリ_プログラム

    【IT】超高速Zapcc C++コンパイラ、オープンソース化

  7. 【IT】上坂すみれさん、プログラミングできる人はかっこいい

  8. 【プログラミング】Web屋とソフトウェア開発者でAPIの意味が若干違ってくる件について

  9. 【IT】2019年にフリーランスに求められるプログラミングスキルとは

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の人気記事

おすすめ記事

  1. カテゴリ_働き方
  2. カテゴリ_プログラム

新着記事

  1. お前らって月収11万なのになんでパソコン買えるの?
  2. 彼氏が「IT企業」勤めです。友人から「勝ち組だね」と言われますが、実際に年収は高…
  3. webエンジニア僕、webデザイナーになりたくて求人を探すも闇が深そうな会社ばか…
  4. きさまらのシステムエンジニアスキル書け。俺がSES単価をつけてやるわ
  5. 【AI】Z世代の36%が罪悪感、仕事でのChatGPTやAIの使用に

ボンブの戯言

  1. 【ボンブの戯言】ITエンジニアが徹夜してでも間に合わせる理由
  2. 【ボンブの戯言】フリーランスが払う税金など6選!私たちはこんなに支払っている!
  3. 【ボンブの戯言】サーバーって何なの(オンプレに限る)
  4. 【ボンブの戯言】ITエンジニアは、なぜうつ病になるのか
  5. 【ボンブの戯言】はじめました。
PAGE TOP