2

どちらか一方を使用する理由を知りたい 2 つのコードがあります。

オプション1

Void GoodPractice()
{
  bool flag;

  if (right)
  {
    flag=1;
  }
  else
  {
    flag=0;
  }
}

また

オプション 2

Void GoodPractice()
{
  bool flag=0;

  if (right)
  {
    flag=1;
  }
}

理由も教えてください。ありがとう。

4

5 に答える 5

1

ない...

void GoodPractice()
{
  bool flag = right;

  // though I would return it  ;)
}
于 2013-02-27T16:35:48.907 に答える
0
bool flag = right != 0; // if you want to be more explicit
于 2013-02-27T16:33:10.343 に答える
0

これらのコード例はどちらも機能的に同等であるため、実際の違いはスタイルの問題です。

ただし、一方が他方よりも明確な場合があります。

たとえば、短い関数では、2 番目のオプションは明確ですがbool flag=0、if ステートメントとステートメントの間に多くのコードがある場合、2 番目のオプションはあまり明確ではありません。

このような理由で、私は両方を正確に使用しました。コードを見てください。より明確に見えます。

于 2013-02-27T16:34:03.517 に答える
0

それはあなたが何をしたいかによります。

一般に、フラグが定義されていないコード セクションがないため、2 番目のバージョンは最初のバージョンよりも優れています。

Void GoodPractice()
{
   bool flag=0;
   // you can use flag  
   if (right)
   {
      flag=1;
   }
}

Void NotAsGoodPractice()
{
   bool flag;
   // you can't use flag, because it has no defined value
   if (right)
   {
      flag=1;
   }
   else
       flag=0;
}
于 2013-02-27T16:34:51.033 に答える
-1

私の謙虚な意見では、私はこれがより良いと感じています.

Void GoodPractice()
 {
 bool flag;

  if (right)
  {
    flag=1;
  }
  else
  {
    flag=0;
  }
}

はい、コードの行数が増え、余分な CPU サイクルが 1 つか 2 つかかる場合があります。

しかし、考えられるすべてのロジックタイプをカバーする明確な方法でコードを書くことにより、エラーを起こす可能性が少なくなる可能性があると感じています.

于 2013-02-27T16:35:04.767 に答える