Maison  >  Article  >  Java  >  Quelle est la différence entre &, |, && et || en Java ?

Quelle est la différence entre &, |, && et || en Java ?

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-04-28 09:22:443602parcourir

Cet article vous présentera les différences entre &, |, && et || en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Quelle est la différence entre &, |, && et || en Java ?

En Java, & est appelé AND au niveau du bit, && est appelé AND de court-circuit. La différence entre eux est :

& est un opérateur au niveau du bit. C'est également un opérateur logique. Les deux côtés de & peuvent être des entiers ou des expressions booléennes. Lorsque les deux côtés de & sont des entiers, les nombres des deux côtés de l'opérateur doivent être convertis en nombres binaires avant l'opération, et le. un court-circuit avec ( &&) doit être une expression booléenne des deux côtés. Par exemple :

Quelle est la valeur de 12&5 ? Réponse : 12 converti en nombre binaire est 1100 (les quatre premiers chiffres sont omis), 5 converti en nombre binaire est 0101, puis le résultat après opération est 0100, soit 4. C'est lorsque les deux côtés sont des valeurs numériques

;

si int i = 2, j = 4 ; alors le résultat de (++i=2) & (j++=4) est faux Le processus est le suivant : déterminez d'abord si ++i=2 est établi. Bien sûr, ce n'est pas établi ici (3 == 2), mais le programme continuera à déterminer si l'expression suivante est vraie, j++=4, l'expression est vraie, mais l'opérateur & nécessite les valeurs des deux côtés de l'opérateur doit être vrai pour que le résultat soit vrai, donc le résultat de (++i=2)&(j++=4) est faux Remarque : La condition pour que

& soit vrai est que les expressions des deux côtés sont vrais, mais même si nous déterminons que la valeur de l'expression de gauche est fausse, le programme doit toujours continuer à s'exécuter pour déterminer si la valeur de l'expression de droite est vraie ou fausse

Si int i = 2, j = 4; then (++i=2)&& (j++=4) Le résultat est faux. Le processus est fondamentalement le même que ci-dessus, mais si la valeur de l'expression de gauche est fausse, le résultat est faux. le programme ne continuera pas à juger si l'expression de droite est vraie ou fausse. Court-circuit et milieu, le mot court-circuit C'est probablement ce que cela signifie

La différence entre '|' en Java.

int i=0;
if(3>2 || (i++)>1) i=i+1;
System.out.println(i);

Ce programme en imprimera 1 au lieu de 2.

Parce que dans le jugement conditionnel de if, le programme détermine d'abord si la première expression 3>2 est vraie, et le résultat 3>2 est vrai, puis selon la logique, quelle que soit l'expression suivante (i++) > Que ;1 soit vrai, l'expression OU entière doit être vraie, donc le programme n'exécutera pas le jugement de l'expression suivante, c'est-à-dire (i++)>1, donc i n'augmente pas de 1 ici. Ensuite, le programme s'exécute jusqu'à ce que i=i+1, donc i devienne 1. Imprimez enfin 1.

int i=0;
if(3>2 | (i++)>1) i=i+1;
System.out.println(i);

Si vous l'écrivez comme ceci, il affichera 2, car peu importe si la première condition 3>2 est vraie ou non, le programme exécutera et jugera la deuxième expression conditionnelle, donc i++ Cet auto-incrémentation sera exécuté, plus i=i+1 dans if, donc finalement i=2.

Certaines personnes ont l'habitude d'appeler || un court-circuit ou, et && un court-circuit ET. La différence entre && et & est similaire à la différence entre || et |. Pour &&, si l'expression conditionnelle précédente est déjà fausse, l'expression conditionnelle entière doit être fausse et l'expression conditionnelle suivante ne sera pas jugée.

Recommandé : "Tutoriel vidéo Java"

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer