HSZG Vorkurs Informatik WS 2014/Wahrheitswerte und Bedingungen/Teil 1
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
An dieser Stelle wollen wir ein weiteres wichtiges Programmierwerkzeug kennen lernen. Der '''Datentyp boolean''' ermöglicht uns die Verwendung von Variablen, die einen Wahrheitswert, also '''true''' oder '''false''' repräsentieren. Solche Variablen können im einfachsten Fall z.B. wie folgt initialisiert werden:
<code id="5419b75403346">boolean w1 = true;
boolean w2 = false;</code>
Um einen Wahrheitswert automatisch zu ermitteln, stehen uns folgende Vergleichsoperatoren zur Verfügung:
<center>
{| style="text-align:center;border:solid grey 1px" cellpadding=3 cellspacing=0
|- style="background:#FFE466;"
! Operator !! Bezeichnung !! Bedeutung
|-
| <span style="color:red">==</span> || Gleich || a==b ergibt true, wenn a gleich b ist.
|-
| <span style="color:red">!=</span> || Ungleich || a!=b ergibt true, wenn a ungleich b ist.
|-
| <span style="color:red"><</span> || Kleiner || a < b ergibt true, wenn a kleiner b ist.
|-
| <span style="color:red"><=</span> || Kleiner gleich || a<=b ergibt true, wenn a kleiner gleich b ist.
|-
| <span style="color:red">></span> || Größer || a>b ergibt true, wenn a größer b ist.
|-
| <span style="color:red">>=</span> || Größer gleich || a>=b ergibt true, wenn a größer gleich b ist.
|}
</center>
Beispiel: Wir möchten testen, ob die Variablen x und y den gleichen Wert besitzen:
<run id="5419b5b3112b9">int x=4;
int y=3;
boolean w3 = x==y;
System.out.println(w3);
</run>
Modifizieren Sie das Beispiel oben, indem Sie andere Vergleichsoperatoren einsetzen!
Des Weiteren stehen uns eine Reihe von logischen Operatoren zur Verfügung:
<center>
{| style="text-align:center;border:solid grey 1px" cellpadding=3 cellspacing=0
|- style="background:#FFE466;"
! Operator !! Bezeichnung !! Bedeutung
|-
| <span style="color:red">!</span> || Logisches NICHT || !a ergibt false, wenn a wahr ist und true, wenn a falsch ist
|-
| <span style="color:red">&&</span> || UND (Short-Circuit) || a && b ergibt wahr wenn a und b wahr sind, sonst falsch. Ist a bereits falsch wird falsch zurückgegeben und b nicht mehr ausgewertet.
|-
| <span style="color:red"><pre>||</pre></span> || ODER (Short-Circuit) || ergibt falsch wenn a und b falsch sind, sonst wahr. Ist a bereits wahr wird b nicht emhr ausgewertet.
|-
| <span style="color:red">&</span> || UND || ergibt wahr wenn a und b wahr sind, sonst falsch. Überprüft beide Operanden.
|-
| <span style="color:red"><pre>|</pre></span> || ODER || ergibt falsch wenn a und b falsch sind, sonst wahr. Überprüft beide Operanden.
|-
| <span style="color:red">^</span> || Exklusiv-ODER || a ^ b ergibt wahr wenn a und b verschiedene Wahrheitswerte haben.
|}
</center>
Auch dazu sehen wir uns ein Beispiel an:
<run id="5419b754033d5">
boolean a = wahr;
boolean b = wahr;
boolean test = a&&b;
System.out.println(test);
</run>
Experimentieren Sie mit dem Beispiel oben, indem Sie die Werte von a und b ändern und indem Sie andere logische Operatoren einsetzen!
'''Aufgabe 1'''
Gegeben sind zwei Variablen x und y mit den Werten 10 und 80:
<code id="5419bcb2cca1e">
int x = 10;
int y = 80;
</code>
Mit diesen Variablen soll eine Reihe von Tests durchgeführt werden. Übersetzen Sie die Fragen a - h jeweils an der Stelle der Fragezeichen in logische Ausdrücke. Verwenden Sie dazu die Vergleichsoperatoren und bei Bedarf auch die logischen Operatoren.
a. Ist die Variable x kleiner als y?
<run id="5419bcb2ccac1">
boolean test = false;
test = ??;
System.out.println(test);
</run>
b. Ist y identisch mit x?
<run id="5419bcb2ccb47">test = ??;
System.out.println(test);</run>
c. Ist das Vierfache von x größer als y?
<run id="5419bcb2ccbc7">test = ??;
System.out.println(test);</run>
d. Liegt x zwischen 50 und 75?
<run id="5419bcb2ccc48">test = ??;
System.out.println(test);</run>
e. Liegt x zwischen -23 und 123?
<run id="5419bcb2cccc8">test = ??;
System.out.println(test);</run>
f. Liegt 25 zwischen x und y?
<run id="5419bcb2ccd49">test = ??;
System.out.println(test);</run>
g. Entspricht die Summe von x und y der Zahl 100?
<run id="5419bcb2ccdca">test = ??;
System.out.println(test);</run>
h. Liegt y nicht zwischen 3 und 13?
<run id="5419bcb2cce4f">test = ??;
System.out.println(test);</run>