Programmstruktur in Java - Kekziie/Informatik-II-SS-2017 GitHub Wiki
Zuweisung besteht aus:
- Name einer Variable
- Gleichheitszeichen =
- Ausdruck
- abschließendes Semikolon ;
Allgemein:
variable = <Ausdruck> ;
kombinierbar mit Variablendeklaration
<Datentyp> variable = <Ausdruck>;
Ausdrücke:
- Komposition von Operanden/ Operatoren
- innerhalb eines Ausdrucks kann Wert einer Variablen durch Angabe des Variablennamens verwendet werden
Beispiel: int a, b;
a = 5 * 3;
b = (a + 7) % 13;
- linke Seite der Zuweisung wird ausgewertet
- rechte Seite (Ausdruck) wird ausgewertet
- ihr Wert unter Beachtung der Präzedenzregeln ermittelt
- falls Wert der rechten Seite typkompatibel
- Zuweisung des Wertes an die Variable
- Addition: +
- Subtraktion: -
- Multiplikation: *
- Ganzzahlige Division: /
- Modulo: %
Präzedenzregel: nach arithmetischen Regel: "Punkt vor Strich"
i += a
i = i + a
i -=a
i = i - a
usw.
Inkrement i++ // nach Verwendung des Wertes i ++i // inkrementiert vor Verwendung des Wertes von i i += 1
Dekrement i-- // nach Verwendung des Wertes i --i // dekrementiert vor Verwendung des Wertes von i i -= 1
Beispiel:
int a = 6, b, c;
b = a++ * 3; // Inhalte der Variablen: b=18 und a=7
c = ++a / 2; // Inhalte der Variablen: a=8 und c=4
- Einstellige Operationen ++,--, negative/positives Vorzeichen, ! (Negation)
- Multiplikative Operationen: *, /, %
- Additive Operationen: +,-
- Vergleichsoperationen: == (gleich), != (ungleich), >, <, >=, <=
- Konjunktion: &&
- Disjunktion: ||
- Zuweisungsoperatoren: =, +=, -=, *=, /=, %=
Verwendung von Klammern zum Strukturieren
- Programme sind Folgen von Vereinbarungen und Anweisungen
- bei Ausführung: sequentielle Abarbeitung der Folge
- imperative Programmierung: Ausführung führt zur schrittweisen Veränderung des (Programm-)Zustandes
- jede Anweisung durch Semikolon ; abgeschlossen
- Ausnahme: geschweifte Klammern {}
Beispiel: public static void main (String[] args) { double d = 5.0; float f = 3.7f; { int i = (int) (d*f); i = i + 8; } }
- Anweisungen können mithilfe von geschweiften Klammern {} gruppiert werden
- eine Gruppe stellt dann selbst eine Anweisung dar
- mittel {...} wird ein Block definiert
Hinweise:
- Variablen, die in einem Block deklariert sind, sind nur innerhalb des Blocks gültig
- deklarierte Größen (Variablen, Konstanten) sind nur während der Ausführungszeit des entsprechenden Blocks gültig
- innerhalb des Blocks dürfen Größen der umschließenden Blöcke bis zur Ebene der Methode verwendet werden
- Größen dürfen nicht mit demselben Namen neu deklariert werden (unabhängig vom Datentyp)
für komplexe Probleme muss häufig entschieden werden, welcher Programmabschnitt ausgeführt werden soll:
- einfache Bedingungen: ein Block wird ausgeführt oder nicht (siehe if/else)
- alternative Auswahl: ein Block oder ein anderer Block wird ausgeführt (siehe if/else)
- Mehrfachauswahl: einer von vielen Blöcken ausgewählt (siehe if/else und switch)