Heim > Java > javaLernprogramm > Was ist der Unterschied zwischen &, |, && und ||?

Was ist der Unterschied zwischen &, |, && und ||?

醉折花枝作酒筹
Freigeben: 2021-04-28 09:23:13
nach vorne
3635 Leute haben es durchsucht

Dieser Artikel stellt Ihnen die Unterschiede zwischen &, |, && und || vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Was ist der Unterschied zwischen &, |, && und ||?

In Java heißt & bitweises UND, && heißt Kurzschluss-AND. Der Unterschied zwischen ihnen ist:

& ist sowohl ein bitweiser Operator als auch ein logischer Operator. Beide Seiten von & können int sein oder boolescher Ausdruck: Wenn beide Seiten von & Ints sind, müssen die Zahlen auf beiden Seiten des Operators vor der Operation in Binärzahlen umgewandelt werden. Allerdings müssen beide Seiten des Kurzschluss-ANDs (&&) boolesche Ausdrücke sein. Zum Beispiel: Welchen Wert hat

12&5? Antwort: 12 in Binärzahl umgewandelt ist 1100 (die ersten vier Ziffern werden weggelassen), 5 in Binärzahl umgewandelt ist 0101, dann ist das Ergebnis nach der Operation 0100 oder 4. Dies ist, wenn beide Seiten numerische Werte sind

Wenn int i = 2, j = 4; dann ist das Ergebnis von (++i=2) & (j++=4) falsch. Der Vorgang ist wie folgt: Bestimmen Sie zunächst, ob ++i=2 festgelegt ist hier (3 == 2) , aber das Programm ermittelt weiterhin, ob der nächste Ausdruck wahr ist, j++=4, dieser Ausdruck ist wahr, aber der &-Operator erfordert, dass die Werte auf beiden Seiten des Operators wahr sind Das Ergebnis ist wahr, also (++i =2)&(j++=4), das Ergebnis ist falsch. Hinweis: Die Bedingung dafür, dass

& wahr ist, ist, dass beide Ausdrücke auf beiden Seiten wahr sind, aber selbst wenn Wenn wir feststellen, dass der Wert des Ausdrucks auf der linken Seite falsch ist, muss das Programm noch ausgeführt werden, um festzustellen, ob der Ausdruckswert auf der rechten Seite wahr oder falsch ist. Wenn int i = 2, j = 4, dann ist das Ergebnis von (++i=2)&&(j++=4) ist falsch Der Prozess ist im Grunde derselbe wie oben, aber wenn der Wert des Ausdrucks auf der linken Seite falsch ist, beurteilt das Programm nicht weiter, ob Der Ausdruck rechts ist wahr oder falsch, das ist wahrscheinlich die Bedeutung des Wortes Kurzschluss von 2.

Denn bei der bedingten Beurteilung von if bestimmt das Programm zunächst, ob der erste Ausdruck 3>2 wahr ist und das Ergebnis 3>2 wahr ist, und dann gemäß der Logik, unabhängig davon, ob der folgende Ausdruck (i++)>1 ist wahr ist oder nicht, muss der gesamte or-Ausdruck wahr sein, damit das Programm die Beurteilung des nächsten Ausdrucks nicht ausführt, d. h. (i++)>1, sodass i hier nicht um 1 erhöht wird. Dann wird das Programm ausgeführt, bis i=i+1, sodass i 1 wird. Drucken Sie abschließend 1 aus.

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

Wenn Sie es so schreiben, wird 2 ausgegeben, denn egal, ob die erste Bedingung 3>2 wahr ist oder nicht, das Programm führt den zweiten Bedingungsausdruck aus und beurteilt ihn, sodass das Inkrement von i++ gleich ist Ausgeführt, plus i=i+1 in if, also final i=2.

Manche Leute sind es gewohnt, || einen Kurzschluss oder, und && einen Kurzschluss UND zu nennen. Der Unterschied zwischen && und & ähnelt dem Unterschied zwischen || und |. Wenn der vorherige bedingte Ausdruck bereits falsch ist, muss der gesamte bedingte Ausdruck falsch sein und der nachfolgende bedingte Ausdruck wird nicht beurteilt.


Empfohlen: „

Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen &, |, && und ||?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage