AUSDRCKE
Ausdrcke sind der Grundbaustein von Java. Der Rechner wertet einen Ausdruck aus.
Dabei wird ein Wert mit einem bestimmten Datentypen berechnet.
LITERALE, NUMERALE
UND BEZEICHNER
Zeichenkette (Datentyp String)
1
2
3
4
GanzeInformatik"
Zahl (Datentyp int)
"Grundlagen der
Fliekommazahl (Datentyp double)
420
7.5 Variablenname (Datentyp der Variable)
myVar //Falls vorher als Variable deklariert
Literale (Zeile 1 und 4) und Numerale (Zeile 2 und 3) sind die einfachste Form eines
Ausdrucks.
1) Zeichenkettenliteral: Text, der von Java unverndert verwendet (z.B.
angezeigt) werden soll
2) Ganzzahlnumeral: Ein ganzzahliger Wert
3) Fliekommanumeral: Eine Zahl mit Nachkommastellen
4) Variablenname: Falls eine Variable mit dem Bezeichner existiert, wird der
Ausdruck zu deren Wert und Datentypen ausgewertet
AUSDRCKE
1 public class Literal{
2
public static void main(String[] args){
3
System.out.println("Grundlagen der Informatik");
4
System.out.println(420);
5
System.out.println(7.5);
6
7
int myVar = 23;
8
System.out.println(myVar);
9
}
10 }
>
>
>
>
AUSDRCKE - OPERATIONEN
Mit Operationen knnen Ausdrcke verknpft werden. Einige Beispiele sind...
1 public class BasicOps {
2
public static void main(String[] args){
3
int x;
4
x = 13;
5
Zuweisungsoperation
6
int y;
7
y = x;
arithmetische Operation
8
9
x = x + 29;
10
System.out.println("x = " + x + ", y = " + y);
11
}
Zeichenkettenoperation
12 }
Addition: Lies den Wert der Variablen x (hier 13) und addiere 29
Zuweisung: Schreibe den Wert rechts (hier 13) in die Variable links (hier x )
Verknpfung: Lies den Wert der Variablen y , wandle diesen in eine Zeichenkette
um und verknpfe diese mit der Zeichenkette ", y = " .
OPERATIONEN - ZUWEISUNG
Eine Zuweisung ndert den Inhalt (oder Wert) einer Variablen. ( Kapitel 2)
<Bezeichner> = <Ausdruck>;
Links vom = steht immer der Bezeichner einer Variablen, rechts davon ein Ausdruck,
der zu einem kompatiblen Datentyp ausgewertet wird. Der berechnete/ausgewertete
Wert wird durch die Zuweisung in die Variable auf der linken Seite kopiert.
1 public static void main(String[] args){
2
int x;
3
x = 23;
4
5
int y;
6
y = x;
7
x = 42;
8
9
System.out.println(x + " " + y);
10 }
> 42 23
OPERATIONEN - ARITHMETIK
Operationen knnen ein, zwei oder dreistellig sein. Beispiel zweistellig:
<Ausdruck> <Operator> <Ausdruck>
In Java gibt es die folgenden arithmetischen Operatoren:
Grundrechenarten: Addition ( + ), Subtraktion ( - ), Multiplikation ( * ), Division ( / )
Vorzeichen: + oder Klammern: ( und )
Modulo: % , entspricht dem Rest der Ganzzahligen Division
1
2
3
4
11 % 4
-4
3 * 3
7 / 3
//Rest: 3
//Negatives Vorzeichen: -4
//Produkt: 9
//Ganzzahlige Division: 2
Hinweis: Das Programm speichert keine Ergebnise und zeigt nichts an. Es kann so nicht bersetzt werden.
VERSCHACHTELTE AUSDRCKE
Ausdrcke knnen verkettet und verschachtelt werden.
BEISPIELE
Verschachteln von Variablenzugriff und Multiplikation:
int a = 2;
4 * a
//
4 * 2
//
//
//
//
//
//
((5)
(5 *
(25)
25 %
25 %
25 %
* 5)
5) %
% (4
(4 (4 (2)
//
9 - 5
% (4 - a)
(4 - a)
- a)
a)
2)
25 % 2
PRIORITTEN
Was wird von folgendem verketteten Ausdruck berechnet?
7 * 2 + 3
MGLICHE LESARTEN
(7 * 2) + 3
14 + 3
17
7 * (2 + 3)
7 * 5
35
TESTLAUF
System.out.println(7 * 2 + 3);
> 17
ERGEBNIS
Verkettete Operationen werden nach Prioritten geordnet ausgewertet
(siehe Java Documentation).
OPERATORASSOZIATIVITT
Die Prioritten von * und / sind identisch. Was wird nun berechnet?
10 * 7 / 2
MGLICHE LESARTEN
(10 * 7) / 2
70 / 2
35
10 * (7 / 2)
10 * 3
30
TESTLAUF
System.out.println(10 * 7 / 2);
> 35
ERGEBNIS
Verkettete Ausdrcke gleicher Prioritt werden (in Java) von links nach rechts
ausgewertet. Java ist damit linksassoziativ.
OPERATIONEN - VERGLEICHE
Operationen knnen Werte vergleichen. Das Ergebnis ist ein Wahrheitswert, also true
fr wahr oder false fr falsch ( Kapitel 4).
5 ==
9 !=
15 >
3 <=
5 ==
7
3
8
-9
7 == false
//
//
//
//
//
false
true
true
false
false == false
true
Hinweis: Das Programm speichert keine Ergebnise und zeigt nichts an. Es kann so nicht bersetzt werden.
OPERATIONEN - LOGIK
Wahrheitswerte knnen mit Hilfe von Operatoren verknpft werden.
In Java gibt es die folgenden logischen Operatoren:
Und ( && )
Oder ( || )
Negation ( ! )
BEISPIELE
1
2
3
4
5
6
7
8
//
//
//
//
//
//
//
//
false
true
false
true
true
false
true
false
Hinweis: Das Programm speichert keine Ergebnise und zeigt nichts an. Es kann so nicht bersetzt werden.
SPEZIELLE OPERATOREN
In Java gibt es noch einige spezielle Operatoren
INKREMENT/DEKREMENT
Das Inkrement ++ (Dekrement -- ) erhht (verringert) den Wert einer Variablen um 1.
ZUWEISUNGEN
Verkrzte Zuweisungen (z.B. += , -= , *= , /= , %= , &= , |= ) erlauben es, den Wert einer
Variablen direkt zu verndern.
1
2
3
4
5
6
int a = 5;
a *= 2;
System.out.println(a);
int b = a++ + ++a;
System.out.println("b:" + b + ", a:" + a);
> 10
> b:22, a:12
SANDKASTEN
Schreiben Sie ein Program, das die Summe von 7 und 25 berechnet und in einer
Variablen a speichert. Multiplizieren Sie den Inhalt von a mit 3 und legen Sie den Wert
in einer Variablen z ab.
Legen Sie eine Variable ergebnis an. Wenn der Wert in z gerade ist, soll diese mit dem
Wert 42 initialisiert werden, ansonsten soll sie 2 enthalten (Verwenden Sie nur
Zuweisungen und arithmetische Operationen!).
Geben Sie zuletzt den Inhalt der drei Variablen (durch Leerzeichen getrennt) aus.
public class MeineOperatoren {
public static void main(String[] args){
}
}
KAPITEL 3