/**********************************************************************/ /* Prof. Dr. Carsten Vogt */ /* TH Koeln, Fakultaet IME */ /* http://www.nt.th-koeln.de/vogt */ /* */ /* Das Programm demonstriert den Umgang mit dem Elementartyp boolean. */ /**********************************************************************/ import java.io.*; public class Boole { public static void main(String args[]) { /* Deklaration zweier Booleanvariablen mit Initialisierung */ boolean boolA = true, boolB = false; boolean result; /* Hilfsvariable */ /* Ausgabe der Variablenwerte */ System.out.println(); System.out.println("boolA = " + boolA + ", boolB = " + boolB); /* Junktoren: Nicht, Und, Oder */ System.out.println(); result = !boolA; System.out.println("!boolA = " + result); result = boolA && boolB; System.out.println("boolA && boolB = " + result); result = boolA || boolB; System.out.println("boolA || boolB = " + result); /* Vergleichsoperatoren */ int zahl = 15; boolean vgl; System.out.println(); vgl = zahl==20; System.out.println("zahl: " + zahl); System.out.println("zahl == 20 : " + vgl); vgl = zahl!=20; System.out.println("zahl != 20 : " + vgl); vgl = zahl<=20; System.out.println("zahl <= 20 : " + vgl); vgl = zahl>20; System.out.println("zahl > 20 : " + vgl); vgl = zahl>=10 && zahl<=20; System.out.println("zahl>=10 && zahl<=20 : " + vgl); /* Kurzschlussauswertung: Ersetzt man im folgenden Code && durch &, so stuerzt das Programm ab, da dann eine Division durch 0 versucht wird. Grund: Bei & wird der boolesche Ausdruck vollstaendig ausgewertet, bei && nur so weit von links nach rechts, bis das Ergebnis feststeht, (d.h. Abbruch, wenn der erste Operand schon ein false liefert). */ int x=10, y=0; System.out.println(); vgl = y>0 && x/y>1; System.out.println("x: " + x + " y: " + y); System.out.println("y>0 && x/y>1: " + vgl); /* Bitoperationen zur Maskierung von Bitgruppen */ byte pack = (byte) ((5<<4) + 6); /* Packen der Werte 5 und 6 in ein Byte */ System.out.println(); System.out.println("gepacktes Byte: " + pack); System.out.println("hinterer Wert: " + (pack&15)); /* Der Wert 15 entspricht der Maske 00001111 */ System.out.println("vorderer Wert: " + ((pack>>4)&15)); } }