Imperative Programmierung
Inhaltsverzeichnis |
Allgemein
Imperative Programmierung ist ein Programmierparadigma - ein konzeptioneller Ansatz der Programmierung. Programme stellen in der imperativen Programmierung eine lineare Abfolge von Befehlen (= Anweisungen) dar.
Anweisungen und Blöcke
Anweisungen sind die Bestandteile imperativer Programme. In Java schreibt man in der Regel eine Anweisung pro Zeile. Eine Anweisung endet aber nicht mit dem Zeilenende, sondern mit einem ";" (Semikolon). Man könnte also auch mehrere Anweisungen pro Zeile schreiben. Da ein Programm aber übersichtlich und gut lesbar für Programmierer sein soll, ist eine Anweisung pro Zeile oft die beste Lösung.
Eine Anweisung sieht also immer so aus: <anweisung>;</anweisung>
Mehrere Anweisungen lassen sich in Blöcken zusammenfassen. Ein Block wird von geschweiften Klammern umschlossen und hat folglich die Syntax:
{
- <anweisung1>;</anweisung1>
- <anweisung2>;</anweisung2>
}
Wann man Blöcke nutzt, wird zu einem späteren Zeitpunkt von selbst deutlich werden. Vorerst bleiben wir bei einzelnen Anweisungen.
Übung
Die folgende Übung zeigt anhand der Anweisung System.out.println("<text>") das oben Erklärte.</text>
zur http://programmingwiki.de/Imperative Programmierung/Übung Anweisungen Übung
Kontrollstrukturen
Kontrollstrukturen dienen dazu, den Programmfluss zu steuern. Man kann Bedingungen stellen oder aber Code beliebig oft wiederholen lassen.
Bedingungen - if (und else) - wenn-dann(-sonst)
Mit einer Bedingung lässt sich der Programmfluss verzweigen. Bspw. könnte man die Bedingung stellen, dass eine Variable option den Wert 5 haben muss, damit ein bestimmter Code ausgeführt wird z.B. weil in einem Menü die fünfte Option ausgewählt wurde. Der Code hierfür könnte also so aussehen:
int option = /* Wert */
if (option == 5) {
- /* auzuführender Code */
}
Generell lautet die Syntax:
if (<ausdruck>) {</ausdruck>
- /* Code */
}
Der Ausdruck muss hierfür eine wahre Aussage darstellen. Ist die Aussage falsch, wird der Code übersprungen.
Es kann aber auch sein, dass man auch bei allen anderen Fällen einen bestimten Code ausführen möchte. Z.B. könnte der Nutzer die Zahl 7 eingegeben haben, obwohl 7 garkeine Option ist. Hier würde also ein Fehler auftreten. Um diesen zu behandeln könnte man also z.B. schreiben:
int option = /* Wert */
if (option > 0 && option < 7) {
- /* Code */
} else {
- System.err.println(„Ungültige Eingabe!“);
}
Die allgemeine Syntax ist also:
if (<ausdruck>) {</ausdruck>
- /* Code */
} else {
- /* Code */
}
Zu Deutsch:
Wenn (Ausdruck wahr) {
- dann
} sonst {
}
Schleifen
Schleifen sind ebenfalls Kontrollstrukturen. Ihre Aufgabe ist es, Programmcode zu wiederholen. Es gibt drei grundlegende Typen von Schleifen.
1. Die For-Schleife:
for (<initialwert>; <abbruchbedigung>: <operation>) {</operation></abbruchbedigung></initialwert>
- /* Code*/
}
z.B. für das 10-malige Wiederholen eines Code-Abschnittes:
for (int i = 0; i < 10; i++) {
- /* Code*/
}
Solange die Variable i (initialisiert mit dem Wert 0) einen Wert kleiner als 10 hat, wird der Code wiederholt. Die Variable i als sog. Zählvariable wird dabei jeweils um 1 erhöht.
2. Die While-Schleife
int i = 0; while (i < 10) {
- /* Code */
- i++;
}
3. Do-while-Schleife
int i = 0; do {
- /* Code */
- i++;
} while (i < 10);
Die drei Schleifentypen funktionieren analog. Es gibt nur einen entscheidenden Unterschied: Die ersten beiden überprüfen direkt, ob die Abbruchbedingung erfüllt ist oder nicht. Letztere wird mindestens einmal ausgeführt, da diese Prüfung erst abläuft, wenn der Code ausfgeführt wurde.
Ist die Abbruchbedingung nicht erfüllt (z.B. i ist größer oder gleich 10), wird die Schleife verlassen.