Maison > Java > javaDidacticiel > Quelle est la principale différence entre les opérateurs « & » et « && » de Java ?

Quelle est la principale différence entre les opérateurs « & » et « && » de Java ?

Linda Hamilton
Libérer: 2024-12-01 04:35:14
original
151 Les gens l'ont consulté

What's the Key Difference Between Java's `&` and `&&` Operators?

Comprendre la distinction entre '&' et '&&' en Java

En Java, l'opérateur '&' est traditionnellement associé à opérations au niveau du bit sur des entiers. Cependant, il est récemment apparu que cet opérateur peut également effectuer des opérations booléennes, ce qui le remet en question avec l'opérateur '&&'.

Bien que '&' et '&&' vérifient tous deux la véracité des opérandes booléens, ils diffèrent par leur logique d’évaluation. '&&' effectue une évaluation paresseuse, ce qui signifie qu'il n'évalue l'opérande de droite (RHS) que si l'opérande de gauche (LHS) est vrai. Cela garantit que si l'opérande LHS est faux, l'opérande RHS n'est pas évalué, ce qui évite potentiellement des calculs inutiles et empêche les exceptions de se produire.

En revanche, '&' évalue sans relâche les deux opérandes. Cela peut conduire à des exceptions si l'opérande RHS n'est pas bien défini pour certaines valeurs d'opérande LHS. Prenons l'exemple :

if ((x != 0) & (1/x > 1)) {
    // ...
}
Copier après la connexion

Si « x » est égal à 0, cette expression lèvera une exception lors de la tentative d'évaluation de « 1/x ». Pour éviter cela, utilisez plutôt '&&' :

if ((x != 0) && (1/x > 1)) {
    // ...
}
Copier après la connexion

Ici, il procédera à l'évaluation de '1/x' uniquement si 'x' n'est pas 0, évitant ainsi l'exception.

De plus, les '|', '|>' les homologues des opérateurs booléens se comportent de la même manière. '|>' arrête d'évaluer si le premier opérande est vrai puisque le résultat sera toujours vrai.

Comprendre cette distinction subtile entre '&' et '&&' est crucial pour écrire du code Java efficace et robuste qui évite les erreurs d'exécution causées par évaluation prématurée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal