0

if elseifとelseまたはifelseとelseの他の条件の使用に違いはありますか?例えば、

if (i == 5)
  printf("i is 5");
else if (i > 5)
  printf("i is greater than 5");
else
  printf("i is less than 5");

また

if (i == 5)
  printf("i is 5");
else {
  if (i > 5)
    printf("i is greater than 5");
  else
    printf("i is less than 5");
}

実行に違いはありません。どちらのスニペットでも同じ結果が得られますが、一方が優れたプログラミング手法であり、もう一方がそうではないという理由だけで、後のスニペットまたは最初のスニペットを使用する必要があるようです。

4

3 に答える 3

6

使用と使用の間に機能的な違いはありませelse ifelse { if。それは純粋にスタイルの決定です。

私は、開発者の大多数が好むと言っても過言ではありませんelse if。を使用else { ifすると、同じデータに基づくロジックに不要なインデントが発生します。

于 2013-03-08T17:46:33.667 に答える
1

状況を最も明確に伝えるものは何でも使用してください。

if (file_opened_successfully)
...
else
{
   if (file_does_not_exist)
   ...
   else if (file_permissions_not_set)
   ...
   else if (file_wrong_type)
   ...
   else
   ...
}

外部の決定は厳密に二者択一です。ファイルを開くことができるか、できないかのどちらかです。ファイルを開くことができた場合は、通常どおりに処理します。それ以外の場合は、エラーを処理する必要があります。

ただし、ファイルを開くことができなかった理由は複数考えられます。エラー処理は、どの理由が該当するかによって異なります。つまり、厳密なバイナリ ブランチではなく、マルチウェイ ブランチです。

于 2013-03-08T18:14:36.880 に答える
0

条件が最初のIfに関連している場合、私は通常最初のアプローチを使用します。そうでない場合は、番号2を使用しますが、それはあなたが快適に感じる方法です。

于 2013-03-08T17:47:30.667 に答える