目次

ニュース

日記カテゴリ

書庫

補足(2006/12/16 8:30)
今回の例は数値を評価する場合にどれが一番読みやすいか?
ということです。

 

1.やさしさが足りない IF文
if (inputNumber >= 0 and inputNumber <= 100)
{
・・・;
}

 

2.やさしさが足りない IF文
if (inputNumber >= 0 and 100 >= inputNumber)
{
・・・;
}

 

3.やさしさが足りない IF文
if (0 <= inputNumber and 100 >= inputNumber)
{
・・・;
}

 

4.やさしさがある IF文
if ( 0 <= inputNumber and inputNumber <= 100)
{
・・・;
}


どれが読みやすいでしょうか?
すんなり読めるのは、4番だと思います。

  0      <=   inputNumber   <=     100
  0       inputNumberの有効範囲          100
--|-------------------------------------|---

 

他人が読むためにも、明日の自分が読むためにも、やさしさは必要です。

投稿日時 : 2006年12月16日 0:01
Feedback
  • # re: プログラムの半分はやさしさでできている? その1
    通行人
    Posted @ 2006/12/16 0:15
    2以外ならどれでも良いと思う。
    普通に書いてれば1になるし、リテラルを左辺に書く(= と == のミスのやつね)
    人は3になると思う。

    2は中途半端。
  • # re: プログラムの半分はやさしさでできている? その1
    RUN
    Posted @ 2006/12/16 0:21
    よく解るけど…
    コーディング規約が最大の敵ですかね~

    因みにこれだとどっちがやさしいのかな?

    1:
    if ( 0 <= inputNumber and inputNumbre <= 100)
    {
    //処理が必要なのはelseのみなのでコードなし
    }else
    {
    ・・・
    }

    2:
    if ( inputNumber < 0 or 100 < inputNumbre)
    {
    ・・・
    }
  • # re: プログラムの半分はやさしさでできている? その1
    中博俊
    Posted @ 2006/12/16 0:23
    >>RUN
    1
  • # re: プログラムの半分はやさしさでできている? その1
    ゆき
    Posted @ 2006/12/16 0:31
    >通行人さん
    コメントありがとうございます。

    >= と == のミスのやつね
    確かに人のミスを防ぐためにという点では、2もやさしさがありますね。
  • # re: プログラムの半分はやさしさでできている? その1
    ゆき
    Posted @ 2006/12/16 0:37
    >コーディング規約が最大の敵ですかね~
    1~4までの書き方が混在しているのが一番困りますね。

    個人的には1ですかね。
    >//処理が必要なのはelseのみなのでコードなし
    このコメントが抜けていると困ったものですが。

    何も処理しない分岐がダメってなると、2よりこっちかな
    3:
    if (!( 0 <= inputNumber and inputNumbre <= 100 ) )
    {
    ・・・
    }
  • # re: プログラムの半分はやさしさでできている? その1
    じゃんぬねっと
    Posted @ 2006/12/16 1:52
    私はネストする派なので、どれも当てはまらないかもしれません。
    あーでも、今回のような範囲の場合は微妙ですね。
    私は 1 で、'And' は使わず 'AndAlso' にしそうです。
  • # re: プログラムの半分はやさしさでできている? その1
    ゆき
    Posted @ 2006/12/16 8:41
    補足を追加しました。
  • # re: プログラムの半分はやさしさでできている? その1
    とっちゃん
    Posted @ 2006/12/16 13:43
    おいらは、4。

    コメントにある逆のパターンは、その時によりますね。
    else 側のみってやつは嫌いなので(今は最適化でうまいことやってくれるけど)、
    if( inputNumber < 0 or 100 < inputNumber ){...}
    か、
    if( !(0 <= inputNumber and inputNumber <= 100) ){...}
    かなぁ。。。
  • # re: プログラムの半分はやさしさでできている? その1
    RUN
    Posted @ 2006/12/16 20:59
    結構皆さんの色々な考えが見れて為になったです。
    逆パターンを出してみたかいがあった。

    逆パターンの1のコメントの補足の無いパターンを最近良く見るので流行っているのかと言うのも含めて聞いてみたかったんです。

    自分もとっちゃんさんと同じで空処理って嫌いなもので。
  • # re: プログラムの半分はやさしさでできている? その1
    RUN
    Posted @ 2006/12/16 21:02
    送信直後に書き忘れに気がついた。
    >ゆきさん
    逆パターン3のNotを利用した方法は空処理も無く見やすくていいですね。
    Not構文の存在をすっかり忘れてましたよ(苦笑)
  • # re: プログラムの半分はやさしさでできている? その1
    RAPT
    Posted @ 2006/12/17 1:58
    σ(^^)は1が基本ですね。
    operator == に関しては const な値を左側に書きます。
  • # re: プログラムの半分はやさしさでできている? その1
    囚人
    Posted @ 2006/12/17 2:33
    4 以外はあり得ない。
  • # re: プログラムの半分はやさしさでできている? その1
    THREE-ONE
    Posted @ 2006/12/17 9:36
    同じく4しかありえない

    ついでにいうと
    if ((0 <= inputNumber) and (inputNumber <= 100))
    {
    // 処理
    }
    って書いてしまいます
  • # re: プログラムの半分はやさしさでできている? その1
    シャノン
    Posted @ 2007/01/30 12:04
    1。
    基本的に、評価対象にしたい値を左辺に書きます。
    定数左辺はやりません。

    ただし、比較対象が定数でなく、どちらも変数の場合は4を使うこともあります。

    elseのみの空処理はやりません。
    4にこだわってnotもやりません。
  • # Just what the dotcor ordered, thankity you!
    Aaron
    Posted @ 2012/10/17 16:32
    Just what the dotcor ordered, thankity you!
タイトル
名前
Url
コメント 

Blog 利用状況