En supposant que
Je me demandais si :
équivaut à
ou d’autre part, cela signifie
Merci d’avance.
En supposant que
Je me demandais si :
équivaut à
ou d’autre part, cela signifie
Merci d’avance.
De la Java Language Specification - 15.26.2 Composé des Opérateurs d'Affectation.
Un composé expression d'affectation de la forme
E1 op= E2
est équivalent àE1 = (T)((E1) op (E2))
oùT
est le type d'E1
, sauf qu'E1
est évaluée qu'une seule fois.
Donc, a &= b;
est équivalent à a = a & b;
.
(Dans certains usages, le type de moulage en fait une différence pour le résultat, mais dans celle - b
être boolean
et le type de fonte ne fait rien.)
Dans la pratique, il y a peu de différence entre a = a & b;
et a = a && b;
. Si b
est une variable ou une constante, le résultat va être le même pour les deux versions. Il y a seulement une différence sémantique lors de l'évaluation de l' b
peut avoir des effets secondaires; c'est à dire quand c'est un non-trivial sous-expression.
Du côté de la performance, le compromis entre le coût de l'évaluation de l' b
, et le coût d'un test et de la direction générale de la valeur de a
, et le potentiel d'économie d'éviter une inutile cession a
. L'analyse n'est pas simple, mais, à moins que le coût de calcul de b
est non-trivial, le potentiel de différence de performances entre les deux versions est susceptible d'être trop petit pour être utile d'examiner.
voir 15.22.2 de la JLS. Pour les opérandes booléens, l' &
opérateur booléen, pas au niveau du bit. La seule différence entre &&
et &
pour les opérandes booléens, c'est que pour &&
il est en court-circuit (ce qui signifie que le second opérande n'est pas évaluée si le premier opérande est false).
Donc dans votre cas, si b
est un primitif, a = a && b
, a = a & b
, et a &= b
tous faire la même chose.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.