2017-03-13 8 views
0

これはどこかで答えると申し訳ありませんが、しばらく見回して何も見つかりませんでした。if else文でブール値を評価する適切な方法

私はObjective-Cでコーディングしていますが、これは主に一般的なコーディングの質問です。私は本質的に、ブーリアンを含むelse文が書かれている場合、適切な専門的な方法があるかどうか疑問に思っています。

  1. が他たstatmentsはブール
  2. が関与する場合の順序付けのための「最速」「最高の」コーディングプラクティスがある場合は具体的に、私はそれらを書くより審美的に一般的な方法があります知っていただきたいと思いますか?

ので、例えば、ここで私はおよそ

方法1

if (myBool) 
{ 
    //Do something 
} 
else 
{ 
    //Do something else 
} 

方法2

if (myBool) 
{ 
    //Do something 
} 
else if (!myBool) 
{ 
    //Do something else 
} 

方法3を思ったんだけど、次の3つの方法があります

if (myBool) 
{ 
    //Do something 
} 
if (!myBool) 
{ 
    //Do something else 
} 

私はこれがちょっとばかげていると知っていて、微妙な細かいところで本当にハープしています。私は、コードの可読性の点で、これらの異なる方法について主に考えています。それはほぼの方法2/3のように私に最もわかりやすいように見えます。これにより、大きなファイルではより簡単な、その変数の特定のケースを検索することができます。たぶんこれはちょっとしたことですが、本当に問題にはなりません。

方法1は私にとって最も一般的なようで、デフォルトで選択するものです。しかし、より経験豊富なコーダーのために、これを行うための具体的な方法がありますか?

+1

boolを使用している場合は、2&3をまったく必要としません。ユーザーメソッド1常に。 – GeneCode

答えて

3

1.あなたが正常に最初に処理することを期待ケースを入れて「最速」「最高の」他たstatmentsはブール

が関与する場合の順序付けのためのコーディング方法」がある。これはです可能な限り決定に近いコードを置くという一般原則に基づいています... [ifの後に通常の場合を置く]例外的なケースを渡すのではなく、メインフローを読むことに焦点を当てます。コード全体を読むのが簡単です。

Code Complete第2版356-357ページ。

2.もっと美的に人気のある書き込み方法がありますか?考慮すべき通常のロジックで

それを流しを使用することをお勧めします方法1

+0

見積もりはすべてのオプションに適用されます... –

0

ことの一つは、あなたが期待している値です。

この場合、ブール値は2つのの可能な値しか持たないため、方法1を最も便利な方法として使用すると意味があります。

2つ以上のチェック可能な値がある場合、方法2が効果的に機能します。

一方、方法3は、myBoolの値が最初の[if]条件の後に変更される可能性がある場合に便利です。

0

私はMethod1が一般的で効率的だと思います。
1.メソッド3では、myBoolがtrueの場合、2番目の条件をチェックする必要はありません。
2. boolには2つの値しかないため、method2では2番目の必要はありません。これはyes/trueまたはno/falseです。 2つ以上の場合のみelseを使用します。
3.もしあなたが他のものを使用している場合、または他の場合は確率に従って条件を提示する必要がある場合。満足している状態を最初に置く必要があります。

0

行うためのきちんとした方法、他/場合、非常に単純な割り当てについては

int num; 
if (isNegative) { 
    num = -1; 
} else { 
    num = 1; 
} 

ショートハンドは次のようになります。

int num = isNegative ? -1 : 1; // --> condition ? true : false 

乱雑得ることができるように私は複雑な条件/割り当てのためにこれを示唆しています。しかし、非常にシンプルなif/else代入をコンパクトにすると便利です。

関連する問題