# boolsche Varaible



## Foster (31. Mai 2009)

1 )Welchen Wert besitzt die boolsche Variable b nach jeder Anweisung, ausgehend von der folgenden Deklaration:

int k = 0, i = 1;
boolean b = false;

                                                           Stimmen meine Antworten?
b = (k > i) && (k >= 0); 	                      true
b = (k > i) || (i > k); 	                              true
b = !(i==0) && (k-i>=0);                             true	
b = (k < i) && (i >= 0) && (i%5==1);             false	
b = (i > k) || (i/k > 1);	                              true

Bin mir nicht ganz sicher.


2)Welchen Wert liefern die folgenden Ausdrücke? Jeder Ausdruck übernimmt dabei die neuen
Werte für d und e. Schreiben Sie dazu in jede Lücke den enstprechenden Wert von d und e!

1:    int d = 1, e = 2;
2:    d *= e;
3:    d += e++;
4:    d -= 3 - 2 * e;
5:    e /= (d + 1);

Meine Antworten:
1: d=1    e=2
2: d= 2   e= 2
3: d= 4   e= 3
4: d= 1   e= -3
5: d= 2   e= 2

Ich hoffe mich kann Jemand in meinen ANtworten bestätigen.
Gruß Foster


----------



## SlaterB (31. Mai 2009)

> Stimmen meine Antworten?
> b = (k > i) && (k >= 0); true

k soll größer i sein, obwohl k 0 ist und i 1? das ist doch total abwegig,

bevor jetzt aber überall alles korrigiert wird und du nur noch die richtigen Antworten abschreiben musst,
solltest du lieber jede einzelne Antwort ausführlich begründen, dann kann man die Fehler in deinen Sätzen korrigieren, das wäre interessanter

abgesehen davon kannst du doch alles in einem Java-Programm testen?


----------



## Foster (31. Mai 2009)

... wie kann ich das mit einem Java Programm testen.
bin absoluter neuling auf dem Gebiet.

zu 1)

int k = 0, i = 1;
boolean b = false;

*b = (k > i) && (k >= 0); true *

verstehe ich so  0 > 1 und 0 >= 0  ---- das stimmt nicht, also true weil boolean b = fals.

*b = (k > i) || (i > k); true
*
0 > 1 oder 1 > 0 stimmt nicht, denn beim oder müssen beide optionen gleich sein. also wieder true weil boolean b = fasle

*b = !(i==0) && (k-i>=0); true*

1 = 0 und 0-1 >= 0
gleiche Antwort wie vorher.


*
b = (k < i) && (i >= 0) && (i%5==1); false*

1 < 0 und 0>=0  und 1/5 rest = 1


*b = (i > k) || (i/k > 1); true*

1 > 0 logisches Oder 1/0 > 1 stimmt nicht, deshalb false.


oder vestehe ich die Aufgabestellung genau falsch herum? boolean b = false bedeutet doch, wenn eine aussage richtig ist, ist sie eigentlich falsch, oder???


----------



## Marco13 (31. Mai 2009)

_oder vestehe ich die Aufgabestellung genau falsch herum? boolean b = false bedeutet doch, wenn eine aussage richtig ist, ist sie eigentlich falsch, oder???_

Scheint so.... 
boolean b = false;
bedeutet erstmal nicht viel - das "false" ist nur der erste (Anfangs)Wert - irgendwas muss man ja hinschreiben - man hätte auch 
boolean b = true;
schreiben können, und das hätte an der Aufgabe nichts geändert.

Das "=" ist eine _Zuweisung_. D.h. nachdem die Zeile ausgeführt wurde, hat b den Wert von dem, was auf der rechten Seite von dem "=" steht.

Neuer Versuch?


----------



## Foster (31. Mai 2009)

Ach so..... dann hab ich das wohl falsch verstanden

int k = 0, i = 1;
boolean b = false;

Stimmen meine Antworten?
b = (k > i) && (k >= 0);                     false
b = (k > i) || (i > k);                         false
b = !(i==0) && (k-i>=0);                     fasle
b = (k < i) && (i >= 0) && (i%5==1);     false
b = (i > k) || (i/k > 1);                        true

ist es jetzt ok?


----------



## Marco13 (31. Mai 2009)

Scrheib' nochmal die Begründungen dazu, wie in deinem zweiten Beitrag....

EDIT: Das "||" bedeutet ODER. Eine Aussage wie "Es regenet ODER es regenet nicht" ist IMMER wahr.


----------



## Foster (31. Mai 2009)

int k = 0, i = 1;
boolean b = false;

b = (k > i) && (k >= 0); false
verstehe ich so 0 > 1 und 0 >= 0    das stimmt nicht

b = (k > i) || (i > k); true
0 > 1 oder 1 > 0 stimmt nicht, aber wegen || true


b = !(i==0) && (k-i>=0); false
1 = 0 und 0-1 >= 0


b = (k < i) && (i >= 0) && (i%5==1); false
1 < 0 und 0>=0 und 1/5 rest = 1


b = (i > k) || (i/k > 1); true
1 > 0  Oder 1/0 > 1 stimmt nicht, doch wegen || true


----------



## SlaterB (31. Mai 2009)

2x
> stimmt nicht, doch wegen || true 

liest sich ziemlich übel, als wenn du 2x sagen wolltest 'beide Teilaussagen sind falsch, aber wegen des || dazwischen sind sie insgesamt richtig'
und das stimmt natürlich, || führt nur dann zum true, wenn mindestens eine der beiden Teilaussagen korrekt ist
(in beiden Fällen aber gegeben)

> b = (k < i) && (i >= 0) && (i%5==1); false
> 1 < 0 und 0>=0 und 1/5 rest = 1

nochmal Variablen einsetzen üben


----------

