diff --git a/kontrollstrukturen.md b/kontrollstrukturen.md index 2a5dbb8..9c393a5 100644 --- a/kontrollstrukturen.md +++ b/kontrollstrukturen.md @@ -1,12 +1,15 @@ ---- + -# **Kontrollstrukturen** +# Kontrollstrukturen -## Sequenz +## **Sequenz** Alle Statements in einem Quelltext werden der Reihe nach ausgeführt. **Statements** Durch `;` getrennter Quelltext @@ -19,7 +22,7 @@ int x = 123 + x; //2. Statement --- -## Selektion +## **Selektion** Es wird selektiert welche Statements ausgeführt werden. ### if @@ -81,15 +84,90 @@ switch(wochentag) { case "Sonntag": System.out.printf("Es ist Wochenende 🎉"); break; + default: + System.out.printf("Diesen Tag gibt es nicht"); + break; } ``` --- -## Iteration +## **Iteration** +Es können Statements wiederholt werden. Iterative Kontrollstrukturen werden +Schleifen genannt. Schleifen können folgende Eigenschaften haben: + +* **Kopfgesteuert** Die Bedingung der Schleife wird im Kopf überprüft. +* **Fußgesteuert** Die Bedingung der Schleife wird im Fuß überprüft. +* **Abweisend** Die Schleife wird nicht durchlaufen. +* **Positiv bedingt** Die Schleife wird durchgeführt solange die Bedingung wahr ist. +* **Negativ bedingt** Die Schleife wird durchgeführt solange die Bedingung falsch ist. + + + +--- + +### for + +* **Kopfgesteuert** +* **Positiv bedingt** + +```java +for(int i = 0; i < 10; i++) { + System.out.printf("%d%n", i); +} + +// Oder in der kurzen Schreibweise: +for(int i = 0; i < 10; i++) System.out.printf("%d%n", i); +``` +![bg right:30% 100%](https://git.haw-hamburg.de/pm1-tutorium/slides/-/raw/master/img/for.svg) + +--- + +### while + +* **Kopfgesteuert** +* **Positiv bedingt** + +```java +int i = 0; +while(i < 10) { + System.out.printf("%d%n", i); + i++; +} +``` + +![bg right:40% 100%](https://git.haw-hamburg.de/pm1-tutorium/slides/-/raw/master/img/for.svg) + +--- + +### do-while + +* **Fußgesteuert** +* **Positiv bedingt** + +```java +int i = 0; +do { + System.out.printf("%d%n", i); + i++; +} while(i < 10) +``` + +![bg right:30% 60%](https://git.haw-hamburg.de/pm1-tutorium/slides/-/raw/master/img/do_while.svg) + +--- + +## **Aufgaben** + +1) Schreibe eine Methode `public static void divide(int quotient, int dividend)` welche das Ergebnis der Division auf die Konsole ausgibt. Achte darauf, dass nicht durch 0 geteilt wird und ggebe eine Warnung über die Nulldivision auf der Konsole aus. + +2) Schreibe eine Methode `public static void calculator(char operator, int number1, int number2)` welche das Ergebnis der Operation auf der Konsole ausgibt. Die durchgeführte Operation hängt von dem Wert der Variable `operator` ab. + Bsp: `calculator('*', 3, 4)` schreibt auf die Konsole: `3 * 4 = 12` + +--- + +3) Schreibe eine Methode `public static void ggT(int a, int b)` welche den ggT von zwei Zahlen berechnet. Benutze dafür den Algorithmus von [Euklid](https://de.wikipedia.org/wiki/Euklidischer_Algorithmus#Iterative_Variante). + +4) Schreibe eine Methode `public static void printAscii()` welche die Ascii-Werte der Zahlen von 0 bis 122 ausgibt. - Kontrollstrukturen V1F60 - * Sequenz - * Selektion V2F81 - * Wiederholung (Iteration)