# if-Abfrage mit zwei Bedingungen



## Guest (7. Sep 2004)

Hallo,

ich bräuchte zur Lösung eines Problems eine If Schleife die ich an zwei Bedingungen knüpfen kann. Also so in etwa:

if (Bedingung 1 und Bedingung 2)
{   }

Gibt es das? Und wenn wie funktioniert es?

Danke!!!


----------



## thE_29 (7. Sep 2004)

if ( 1 == 1 && 2 == 2) //and
{ 
dann
}

if( 1 == 1 || 2 == 2) //oder
{
dann
}

Empfehlungen an google, gib mal "java ist auch eine insel" und vielleicht "programmieren anfang" ein


----------



## P3AC3MAK3R (7. Sep 2004)

if-Schleifen existieren nicht. Es handelt sich um if-Anweisungen bzw. -Abfragen.


----------



## Campino (8. Sep 2004)

P3AC3MAK3R hat gesagt.:
			
		

> if-Schleifen existieren nicht. Es handelt sich um if-Anweisungen bzw. -Abfragen.



Hab ich meinem Informatiklehrer auch schon gesagt...

Noch zur if:


```
Operator  Zeichen        Wirkung
and            &&             Wenn beide Bedinungen True sind
oder           ||              Wenn eine der Bedinungen True ist
xor             ^               Wenn eine, aber nicht beide bedinungen erfüllt ist
```

Bei boolean-Werten kann man jeweils eins der beiden zeichen weglassen


```
boolean b=False;
boolean c=True;
if(b|c){//wird ausgeführt
}
if(b||c){//wird nicht ausgeführt
}
if(b^c){//wird ausgeführt
}
```


----------



## bygones (8. Sep 2004)

das mit dem wehlassen stimmt schon würde ich aber nicht empfehlen ! Man sollte zwischen vergleichsoperatoren und Bitoperator unterscheiden... beide liefern zwar das selbe Ergebnis meiner Ansicht nach aber ist das eher verwirrend !


----------



## P3AC3MAK3R (8. Sep 2004)

Campino hat gesagt.:
			
		

> P3AC3MAK3R hat gesagt.:
> 
> 
> 
> ...


Uh, wenn das von einem Informatiklehrer kommt, ist das ganze umso schlimmer.


----------



## foobar (8. Sep 2004)

> das mit dem wehlassen stimmt schon würde ich aber nicht empfehlen ! Man sollte zwischen vergleichsoperatoren und Bitoperator unterscheiden... beide liefern zwar das selbe Ergebnis meiner Ansicht nach aber ist das eher verwirrend !


Ausserdem sollte man zwischen Short-Circuit und Long-Circuit-Operatoren unterscheiden. Denn 

```
if ( foo() || bar())
{
}
```
liefert unter Umständen ein anderes Ergebnis als

```
if ( foo() | bar())
{
}
```
Denn im zweiten Beispiel wird die Methode bar() auch aufgerufen, wenn die Methode foo() false zurück geliefert hat. 
Short-Circuit bedeutet, daß immer beide Operatoren ausgewertet werden.
http://www.addison-wesley.de/Service/Krueger/kap05004.htm


----------

