Programmieren_04_Kontrollstrukturen PDF
Document Details
Uploaded by GenerousBrazilNutTree911
DHBW Stuttgart Campus Horb
Olaf Herden
Tags
Summary
This document contains lecture notes for a programming course, likely for an undergraduate level. It covers control structures in programming languages. The notes appear to be part of a larger course or module, based on the header.
Full Transcript
Vorlesung Programmieren Thema 4: Kontrollstrukturen Olaf Herden Fakultät Technik Studiengang Informatik Stand: 11/2023 1 Gliederung Elementare Kontrollstrukturen Bedingte Anwe...
Vorlesung Programmieren Thema 4: Kontrollstrukturen Olaf Herden Fakultät Technik Studiengang Informatik Stand: 11/2023 1 Gliederung Elementare Kontrollstrukturen Bedingte Anweisung Schleifen Sprünge Unterprogramme VL Programmieren Olaf Herden 2 Studiengang Informatik Deklaration (I) Anlegen Variablen bestimmten Typs: Reservierung Speicherplatz Initialisierung Syntax: ::= ["=" ] {"," ["=" ] } ";" Beispiele: (1) int i = 7; (2) int j; (3) int k = 5, l, m, n = 9; VL Programmieren Olaf Herden 3 Studiengang Informatik Deklaration (II) Bedingungen: Variable und Initialisierungsausdruck müssen typkonform sind, z.B. int i = 3.14; ist verboten Variablenname darf nicht im eigenen Initialisierungsausdruck vorkommen, z.B. int i = i + 6; ist verboten VL Programmieren Olaf Herden 4 Studiengang Informatik Ausdruck Syntax: ::= ";" muss Zuweisungsausdruck oder Funktionsaufruf sein Semantik: Berechnung des Ausdrucks Beispiel: (1) float pi = 3.1415; (2) float radius = 7.2; (3) float umfang = 2 * pi * radius; (Zuweisungs)ausdruck Anm.: Funktionsaufrufe werden später behandelt VL Programmieren Olaf Herden 5 Studiengang Informatik Zuweisung Syntax: ::= "=" ::= ";" Semantik: Berechnung des Ausdrucks Zuweisung des berechneten Wertes an die Variable Beispiele: (1) float i = 3.; (2) float j = 4.5; (3) float k; (4) k = i * j; Resultat: k = 13.5 Bedingungen: Variablenname muss gültig sein, d.h. vorher deklariert Typ des Ausdrucks und der Variable müssen kompatibel sein VL Programmieren Olaf Herden 6 Studiengang Informatik Block Syntax: ::= "{" { } "}„ ::= ( | ) Semantik: Keine Auswirkungen auf den Programmablauf Dient lediglich der Strukturierung Innerhalb eines Blockes können eigene Variable deklariert werden Beispiel: (1) { (2) int i = 5; (3) { (4) int j = 8; (Innerer) Block (Äußerer) Block (5) i = j; (6) } (7) i++; (8) j++; (9) } Fehler: Variable j im äußeren Block nicht gültig VL Programmieren Olaf Herden 7 Studiengang Informatik Gültigkeitsbereich und Lebensdauer Gültigkeitsbereich einer Variablen: Zur Compilezeit relevant Teil des Programms, in dem Variable über ihren Namen angesprochen werden kann Gültigkeitsbereich einer Variablen: Block der Definition Alle inneren Blöcke Variablennamen müssen innerhalb eines Blocks und aller inneren Blöcke eindeutig sein Lebensdauer einer Variablen: Zur Laufzeit relevant Lebensdauer einer Variablen beginnt mit dem Anlegen Lebensdauer einer Variablen endet mit dem Verlassen des Blocks VL Programmieren Olaf Herden 8 Studiengang Informatik Sequenz Syntax: ::= ";" ";" Semantik: Durch Semikolon getrennte Anweisungen werden hintereinander ausgeführt Beispiel: (1) int i = 3; (2) int j = 5; (3) j = j + i; (4) i -= 8; Resultat: i = ‐5 und j = 8 VL Programmieren Olaf Herden 9 Studiengang Informatik Übersicht Elementare Kontrollstrukturen Bedingte Anweisung Schleifen Sprünge Unterprogramme VL Programmieren Olaf Herden 10 Studiengang Informatik Bedingte Anweisung (I) Syntax: ::= "if (" ")" ["else" ] Semantik: Auswertung des Ausdrucks Ist dieser wahr, so wird Anweisung_1 ausgeführt Sonst wird Anweisung_2 ausgeführt Beispiel: (1) if (i % 2 == 0) (2) System.out.println("Zahl ist gerade."); (3) else (4) System.out.println("Zahl ist ungerade."); VL Programmieren Olaf Herden 11 Studiengang Informatik Bedingte Anweisung (II) Häufiger Fehler: (1) if (i % 2 == 0) (2) System.out.print("Zahl ist "); (3) System.out.println("gerade."); führt bei ungeradem i zur Ausgabe gerade. Sollen beide Anweisungen nur bei geradem i ausgeführt werden, müssen diese zu einem Block zusammengefasst werden: (1) if (i % 2 == 0){ (2) System.out.print("Zahl ist "); (3) System.out.println("gerade."); (4) } VL Programmieren Olaf Herden 12 Studiengang Informatik Bedingte Anweisung (III) Erweiterung um mehrere Möglichkeiten: ::= "if (" ")" {"else if" } ["else" ] Beispiel: (1) if (i == 0) (2) System.out.println("Null.") (3) else if (i == 1) (4) System.out.println("Eins.") (5) else if (i == 2) (6) System.out.println("Zwei.") (7) else System.out.println("Weder 0 noch 1 noch 2."); VL Programmieren Olaf Herden 13 Studiengang Informatik Übersicht Elementare Kontrollstrukturen Bedingte Anweisung Schleifen Sprünge Unterprogramme VL Programmieren Olaf Herden 14 Studiengang Informatik while‐Anweisung Syntax: ::= "while (" ")" () Semantik: Boolescher Ausdruck wird berechnet Wenn true Anweisung ausführent Sonst Fortfahren mit nächster Anweisung Beispiel: (1) int i = 1; (2) int grenze = 20; (3) while (i