6

このコード行が何を意味し、それが良い習慣であるかどうかを誰かに説明してもらえますか?

ブール値に1つまたは別の値を割り当てようとしているように思えますが、明確ではありません。

   myBoolVar = isC || isP || isX;
4

5 に答える 5

14

演算子は||条件付き OR を表します。

isC、isP、または isX のいずれかが true の場合、myBoolVar は true になります。

|に似ています。ただし、左側がtrue評価された場合、右側は評価されません

それが良い習慣であるかどうかについては、より冗長な意味論的等価物を検討してください:-

bool myBoolVar;

if (isC)
{
  myBoolVar = true;
}
else if (isP)
{
  myBoolVar = true;
}
else if (isX)
{
  myBoolVar = true;
}

特に、どちらを維持したいかを検討してください。ほとんどの場合、人々は簡潔myBoolVar = isC || isP || isX;な方が読みやすいと考えていると思います。

以下のコメントから、プログラミングは単純さであり、「見せびらかす」ことではないと主張していることがわかります。プログラマーは自分の満足のためにコードを圧縮したり、意図的に難読化しようとすることがよくありますが、それはしばしばプロジェクトに損害を与えます。これはおそらくそれらのケースの 1 つではありません。変数にもっと明確な名前を付けて、適切な名前のプロパティの背後にカプセル化することもできますが、a || b || cより冗長なものよりも構造を使用することは間違いありません。

それをより明確に表現する方法があると思われる場合は、それを私たちと共有してください。それについて話し合うことができます.

于 2012-11-05T13:19:05.830 に答える
5

これが条件ORです。isCisPの値は一緒isXOR-ed されます。

http://msdn.microsoft.com/en-us/library/6373h346.aspx

あなたがする必要があるのは、ファインマニュアルを読むことだけです.

于 2012-11-05T13:19:28.300 に答える
3

演算子は||単に OR を意味します。したがって、疑似コードでは次のように言うかもしれません

myBoolVal = isC OR isP OR isX

これは平易な英語で何をしますか...

「isC が true、isP が true、または isX が true の場合、myBoolVal は true、それ以外の場合、myBoolVal は false」

于 2012-11-05T13:31:17.643 に答える
2

それらのいずれかにtrue値がある場合は true を返します

bool myBoolVar = false;
if( isC == true || isP == true || isX == true)
{
    myBoolVar = true;
}
于 2012-11-05T13:19:05.327 に答える
1

条件付きOR :

それは、次の変数のいずれかisC, isP, isXTrue次にmyBoolVarあることを意味しますTrue

あれは:

myBoolVar = if(isC == true) || if(isP == true) || if(isX == true)
于 2012-11-05T13:22:10.263 に答える