# Unterschied von & und && bzw. | und ||



## frager (27. Jul 2006)

hallo, wo genau ist da der unterschied? nehmen wir folgenden code:


```
boolean one = true;
boolean two = false;

one & two = ?
one && two = ?

one | two = ?
one || two = ?
```

warum kommt da das raus, was rauskommt?

vielen dank


----------



## Caffè Latte (27. Jul 2006)

Hi,

& = bitweiser UND Operator
&& = logischer UND Operator

| = bitweiser ODER Operator
|| = logischer ODER Operator

Hoffe es hilft ...


----------



## Redfrettchen (27. Jul 2006)

Hi,
das ist leider nicht richtig, Caffé Latte.
Ein Blick in die FAQ hätte gereicht:


> Logische Operatoren
> Arg && Arg (Bedingt logisches UND (Die Berechnung wird abgebrochen, sollte das erste Argument false sein))
> Arg & Arg(Logisches UND, beide Argumente werden ausgewertet)
> Arg || Arg (Bedingt Logisches ODER, sollte das erste (= das linke) Argument true sein, wird das zweite Argument nicht ausgewertet)
> ...


----------



## Caffè Latte (27. Jul 2006)

Hi Redfrettchen,

jo, deine Aussage stimmt insoweit, da ja von boolschen Werten ausgegangen wurde. Da gehen bitweise Operatoren ja nicht:

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/relational.html

Man sollte die Posts eben richtig lesen.


----------



## Redfrettchen (27. Jul 2006)

Ok, wir haben beide irgendwo recht, aber es ging ja hier um boolean Wert


----------



## 0xdeadbeef (27. Jul 2006)

Die booleschen "&&" und "||" nennt man übrigens "Kurzschlußoperatoren", weil die Auswertung abgebrochen wird, sobald das Ergebnis klar ist. Das macht natürlich nur dann einen Unterschied (abgesehen von der Geschwindigkeit), wenn man innerhalb des Ausdrucks auch Anweisungen ausführt (z.B. Funktionsaufrufe, die dann evtl. nicht erfolgen). In aller Regel hat man das aber nicht und dann sind die Kurzschlußoperatoren halt schneller.


----------



## Leroy42 (27. Jul 2006)

Ada hatte da zwei hübsche Namen eingeführt.

Bekannt: and, or
Neu: andThen, orElse


&&, || enstprechen der NEU-Variante


----------



## Redfrettchen (27. Jul 2006)

Meinst du jetzt die echte Ada Lovelace oder die Programmiersprache?


----------



## Leroy42 (27. Jul 2006)

Gibt's da ein Unterschied?  :shock:


----------



## Redfrettchen (27. Jul 2006)

Naja, die Programmiersprache wurde nach der Dame benannt. Und die knapp 100 Jahre Zeitunterschied, die zwischen ihnen liegen.


----------



## Leroy42 (27. Jul 2006)

Das war mir schon bekannt   

Meine Frage war mehr ironisch/rhetorisch/zotig


----------



## Redfrettchen (27. Jul 2006)

^^


----------

