# Boolean und if-Abfrage



## HappyTom (19. Jul 2009)

Hallo zusammen,
seit vorgestern habe ich mit dem "programmieren" angefangen und hänge an einem Thema fest Logische operatoren bzw. mir fehlt das Verständis dafür



```
public class ifprogramm {
	
	public static void main(String [] args) {
	
	boolean wert1 = false;

		
		if( wert1 ){
			System.out.println("Wert1 ist falsch:" + wert1);
		}
	}
}
```


und zwar müsste doch die Ausgabe den Boolean Wert false ausgeben,was sie aber nicht tut,jedoch wenn ich den wert1 in true umwandle gibt die if abfrage den Wert aus.

Eigentlich steht da doch nichts anderes als if ( false),heißt das das die Abfrage erst eine Ausgabe erzeugt wenn ich einen Wert Abfrage  der false ist? Und das da jetzt im Prinzip steht sowas wie -*- = + und somit ist der Wert true und nicht false ?


Und mein Zweites problem ist das hier:
[Java]public class Logik{
	public static void main (String [] args){

	boolean x = true;
        boolean y = true;
	boolean ergebnis = false;

        ergebnis= (x && y); 


        System.out.println("Ergebnis: " + ergebnis);

	}
}[/Java] 

müsste da nicht auch false Rauskommen da ergebnis = false gesetzt wurde oder wird das durch (x && y) überschrieben?

Danke schonmal im Voraus
HappyTom


----------



## Keylan (19. Jul 2009)

Also zum ersten beispiel, verhinderst du eine Ausgabe durch die if-Abfrage.

Was im if-Block steht wird nur dann ausgeführt wenn der boolsche wert in der bedingung "true" ist.

Ohne if-Abfrage würdest du "false ausgeben.

Zum zweiten, ja in Zeile 8 weist du der Variablen "ergebnis" einen neuen Wert zu.


----------



## HappyTom (19. Jul 2009)

Danke für die schnelle antwort,ich dachte da ich ja wert1 = false gesetzt habe erwartet die if Abfrage auch einen Wert der false ist und nicht true.


----------



## Civilazi (19. Jul 2009)

HappyTom hat gesagt.:


> Danke für die schnelle antwort,ich dachte da ich ja wert1 = false gesetzt habe erwartet die if Abfrage auch einen Wert der false ist und nicht true.



Das ist Quatsch. Stell dir eine if-Abfrage genau so vor, wie sie ist: 

Wenn (Bedingung zutrifft), dann tu etwas. Also bei if() muss in den Klammern etwas stehen, was zu einem boolean wird. Also zum Beispiel

```
if(3 < 4)
System.out.println("3 < 4!!");
```


```
if(5 != 4)
System.out.println("5 != 4!!");
```


```
if(true)
System.out.println("true");
```
oder eben


```
if(3 < 1)
System.out.println("3 < 1!!");
```


```
if(5 != 5)
System.out.println("5 != 5!!");
```


```
if(false)
System.out.println("false");
```

Nun kannst du das auch mit einem boolean machen:

```
boolean b = ...;
if(b == true)
System.out.println("b = true");
```
Dann ist aber (b == true) genau dann, wenn in b schon true drin steht, also geht das ganze auch kürzer: 

```
boolean b = ...;
if(b)
System.out.println("b = true");
```


----------



## HappyTom (19. Jul 2009)

> Dann ist aber (b == true) genau dann, wenn in b schon true drin steht, also geht das ganze auch kürzer:
> Java Code: Quelltext in neuem Fenster öffnen
> 
> ```
> ...




Ich dachte das hätte ich getan


```
boolean wert1 = false;
 
        
        if( wert1 ){
            System.out.println("Wert1 ist falsch:" + wert1);
```
 und der müsste mir dementsprechend ein false ausgeben
was ich nicht verstehe das der Wert1 in der if abfrage scheinbar true ist da ich ihn ja als false deklariert habe,erst wenn ich die if abfrage negiere kommt die ausgabe.


----------



## nO-0n3 (19. Jul 2009)

Du verstrickst dich da ein bisschen.



> Was im if-Block steht wird nur dann ausgeführt wenn der boolsche wert in der bedingung "true" ist.



bei dir ist wert1 = false;
verständlicher geschrieben überprüfst du:

```
if(wert1 == true) { .. }
```

und das trifft eben nicht zu weil wert1 ja false ist.

wenn du natürlich schreibst


```
if(!wert1) { .. }
```
 stimmt es wieder da ja !false gleich true ist.


----------



## HappyTom (19. Jul 2009)

Ahh,vielen danke jetzt hab ich es verstanden 

grüße 
HappyTom


----------

