2016-09-19

http://anond.hatelabo.jp/20160919184519

自分が知っている言語だと、「param == 0」は前提にならないと思うのですが、想定している言語を教えて頂いても構わないでしょうか?

自分の知っている言語では論理積論理和評価優先順位は同じ物ばかりで、上げられている条件分に関しては

if ((param==0 && 判定(param2)) || !param3) {~}

等価になると思われます

そのため、仮にparamが0以外だったとしても、!param3がtrue評価されるような値の場合は条件を満たすと思われるのですが。(実際node.jsのv5.11.0で試した所そのようになりました。)

記事への反応 -
  • ifの条件が2つ以上だと頭がパンクする

    if(param==0 && 判定(param2) || !param3){ //したいこと } みたいに3つぐらい条件がある場合、頭がパンクしそうになる。 この時こう考えている。 1:したいことをする条件は 2:paramが0 3:かつ 4:...

    • http://anond.hatelabo.jp/20160919121645

      まず、param==0が絶対なら、ここでifにしちゃって、 入れ子になってもとにかく自分が分かるようにしとけ。 一行で書くのはそのあとではどうだろう if(param == 0) { if(test(param2) || !param3) { ...

      • http://anond.hatelabo.jp/20160919184519

        自分が知っている言語だと、「param == 0」は前提にならないと思うのですが、想定している言語を教えて頂いても構わないでしょうか? 自分の知っている言語では論理積・論理和の評価...

        • http://anond.hatelabo.jp/20160919201052

          自分の知っている言語では論理積・論理和の評価優先順位は同じ物ばかり 横だけど、大多数の言語は論理積の方が優先順位高くて、例外的な言語でのみ論理和の方が高いことがあると...

        • http://anond.hatelabo.jp/20160919201052

          自分の伝え方が悪いのがいけないんですが、 言語的な仕様の話ではなくて、増田の条件式に対しての日本語化がおかしく見えるという話です。 「かつ」とか「または」とかって、1,2,3,4...

      • http://anond.hatelabo.jp/20160919184519

        いかがもなにも、あなたが他人に教えるのが下手で、自分ができることをひけらかすのがうまいということがわかったくらいだよ。

    • http://anond.hatelabo.jp/20160919121645

      3つでパンクするのはワーキングメモリが弱いな

    • http://anond.hatelabo.jp/20160919121645

      可読性の悪い糞コードを書くやつが戦犯

    • http://anond.hatelabo.jp/20160919121645

      判定(param2) { return true / false; }大判定(param1, param2, param3) { if param1 != 0  return false; if 判定(param2)  return true; return param3 == false;}if (大判定(param1, param2, param3) // fuck

    • http://anond.hatelabo.jp/20160919121645

      条件をXとおく。 if (X) { /* Something to do */} 満たす条件は、 (i) paramが0 かつ 判定関数でparam2が真 param == 0 && test(param2) (ii) param3が偽 !param3 (i),(ii)はどちらかを満たせばよいので X = (i) ...

    • http://anond.hatelabo.jp/20160919121645

      頭の病気かも知れない。

    • http://anond.hatelabo.jp/20160919121645

      関数型ライクに書けるなら, filterっすよ! .filter(condition1).filter(condition2)

    • http://anond.hatelabo.jp/20160919121645

      初学者→初級者 あるある。 ネスト深くなってもいいから&&と||を別にして正しく分岐させるべき。 こんなん設計が悪いってのが前提だけど。 SQLも実運用でサブクエリ使わないと抽...

    • 表を書こう

      例題 param==0 && 判定(param2) || !param3 各条件の真偽パターンは以下の通り2の3乗=8通りある。 (a)param==0, (b)param2, (c)!param3 1 true, true, true 2 true, true, false 3 true, false, true 4 true, false,...

    • http://anond.hatelabo.jp/20160919121645

      皆パンクするから大丈夫だよ   「おっとーこれはアレですね^^;」みたいな顔しながら解読するよ   ちなみにコードの良さを測るソフトがあるけど、そういう書き方はNGが出るよ   ...

    • http://anond.hatelabo.jp/20160919121645

      https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97...

    • http://anond.hatelabo.jp/20160919121645

      条件式をローカル変数で分ければいいんじゃないかなあ boolean isHoge = param==0 && 判定(param2); boolean isNotParam3 = !param3; if(isHoge || isNotParam3){ //したいこと } みたいに。 isHoge のところをわか...

      • http://anond.hatelabo.jp/20160919221450

        //入力値チェック if (param !=0) { return false; } //Hoge1とは何か? boolean isHoge1 = 判定(param2); //Hoge2とは何か? boolean isHoge2 = !param3; if (isHoge1 && isHoge2) { return true; } return false; 俺にはこれが...

    • http://anond.hatelabo.jp/20160919121645

      最近の若者はワンライナーなのか、3項演算子使わないと馬鹿にされるのか知らないけれど、 賢そうな構文は使わなくていい。 boolean check(int param, int param2, int param3){ if ( param == 0 && ...

    • http://anond.hatelabo.jp/20160919121645

      どういう場合にif以降を実行させたいか、をまず考えるなぁ。 その上で、条件式が汚なかったら「汚ねぇな、これ」と思う。

    • 簡単なパーツ(ロジック)に泥臭く分解するのも、プログラミングだと思う| ただの通りすがり

      if(param == 0){ if(判定(param2) == TRUE || param3 == FALSE){ //したいこと }}こんな感じで考えてみては?※たぶん、間違ってないけど、間違ってたらごめん。

    • http://anond.hatelabo.jp/20160919121645

      パンクするのは正常。だからそういう条件分岐は書かず、リファクタリングして可読性の高いコードにする。

    • http://anond.hatelabo.jp/20160919121645

      いいプログラムはif文をネストさせないし条件式もシンプルになる。というか極力if文を使わない。 だから元のクソコード書いた奴が悪いんだよ。 「あなたのコードをメンテナンスする...

    • http://anond.hatelabo.jp/20160919121645

      a = b * c + e こんなのでも、 a = (b * c) + e こうすれば、どこから評価するかは分かるようになる。 同様に、 if(param==0 && 判定(param2) || !param3){ も if((param==0 && 判定(param2)) || !param3){ とす...

    • http://anond.hatelabo.jp/20160919121645

      内容によりけりだけれど、よくやるリファクタリングの例を紹介しておきます。 // したいことは英語でいい名前をつける void したいこと(){ // したいこと } if( param==0 && 判定(param2) ){ ...

      • http://anond.hatelabo.jp/20160920125028

        トラバ全部読んでないけど、 boolean したいことをする? () { if( param==0 && 判定(param2) ){ return true; }else if( !param3 ){ return true; } return false; } if(したいことをする?()) { し...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん