Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
| start:info:11if:05_ablaufsteuerung 02.11.2008 23:10 | start:info:11if:05_ablaufsteuerung 13.04.2018 08:41 aktuell | ||
|---|---|---|---|
| Zeile 41: | Zeile 41: | ||
| </code> | </code> | ||
| - | Jetzt könnte man fragen: Wie entscheidet Java diesen Prozess? Wenn die Bedingung in den runden Klamern nach dem ''if'' erfüllt wird, dann wird der Block ''{ ... }'' – direkt unter dem ''if'' – ausgeführt, ansonsten der Block ''{ ... }'' nach dem ''else''. Wenn wir eine Struktur wie bei dem ersten Beispiel haben – d.h. kein ''else'' Block – wird die Ausführung des Programms nach der schließenden geschweiften ''}'' fortgesetzt. Dazu können wir den unten stehenden Code näher anschauen: | + | Jetzt könnte man fragen: Wie entscheidet Java diesen Prozess? Wenn die Bedingung in den runden Klammern nach dem ''if'' erfüllt wird, dann wird der Block ''{ ... }'' – direkt unter dem ''if'' – ausgeführt, ansonsten der Block ''{ ... }'' nach dem ''else''. Wenn wir eine Struktur wie bei dem ersten Beispiel haben – d.h. kein ''else'' Block – wird die Ausführung des Programms nach der schließenden geschweiften ''}'' fortgesetzt. Dazu können wir den unten stehenden Code näher anschauen: |
| <code java> | <code java> | ||
| Zeile 52: | Zeile 52: | ||
| Wenn die Variable ''counter'' einen Wert kleiner 10 hat, werden die Befehle zwischen den geschweiften Klammer ''{'' und''}'' ausgeführt. Wenn der Wert größer oder gleich 10 ist, wird dieser Block übersprungen und nach dem ''}'' fortgesetzt. Das bedeutet, dass dann der Befehl ''System.out.println("Fertig");'' ausgeführt wird.\\ | Wenn die Variable ''counter'' einen Wert kleiner 10 hat, werden die Befehle zwischen den geschweiften Klammer ''{'' und''}'' ausgeführt. Wenn der Wert größer oder gleich 10 ist, wird dieser Block übersprungen und nach dem ''}'' fortgesetzt. Das bedeutet, dass dann der Befehl ''System.out.println("Fertig");'' ausgeführt wird.\\ | ||
| - | Aber nicht missverstehen: Selbst wenn die Variable ''counter'' einen Wert kleiner als 10 hat, wird – nachdem die Befehle im Block solange ausgeführt wurden, bis der Wert 10 erreicht hat - im Programm fortgesetzt, sprich: ''System.out.println("Fertig");'' wird ausgeführt. Und wie sieht's aus, wenn man ein ''else''-Block hinzufügt? So wie oben, aber (natürlich) mit kleinen Unterschieden. Guck dir dazu die Beispiele an und führe sie aus. Dazu kannst du verschieden Zahlen eingeben und sehen, wie's funktioniert. | + | Aber nicht missverstehen: Selbst wenn die Variable ''counter'' einen Wert kleiner als 10 hat, wird – nachdem die Befehle im Block solange ausgeführt wurden, bis der Wert 10 erreicht hat - im Programm fortgesetzt, sprich: ''System.out.println("Fertig");'' wird ausgeführt. Und wie sieht's aus, wenn man einen ''else''-Block hinzufügt? So wie oben, aber (natürlich) mit kleinen Unterschieden. Guck dir dazu die Beispiele an und führe sie aus. Dazu kannst du verschieden Zahlen eingeben und sehen, wie's funktioniert. |
| <code java> | <code java> | ||
| Zeile 323: | Zeile 323: | ||
| FIXME\\ | FIXME\\ | ||
| + | |||
| + | <html> | ||
| + | <!-- | ||
| + | <code Java> | ||
| + | import Prog1Tools.IOTools; | ||
| + | |||
| + | public class If11 { | ||
| + | |||
| + | |||
| + | public static void main(String args[]) { | ||
| + | int note = IOTools.readInteger("Gib eine Note (1-6) ein: "); | ||
| + | |||
| + | switch (note) { | ||
| + | case 1: | ||
| + | System.out.println("sehr gut"); | ||
| + | break; | ||
| + | case 2: | ||
| + | System.out.println("gut"); | ||
| + | break; | ||
| + | case 3: | ||
| + | System.out.println("befriedigend"); | ||
| + | break; | ||
| + | case 4: | ||
| + | System.out.println("ausreichend"); | ||
| + | break; | ||
| + | case 5: | ||
| + | System.out.println("mangelhaft"); | ||
| + | break; | ||
| + | case 6: | ||
| + | System.out.println("ungenügend"); | ||
| + | break; | ||
| + | default: | ||
| + | System.out.println("ungültig."); | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | --> | ||
| + | </html> | ||
| Praktisch gibt es in der Programmierung öfters Situationen oder Probleme, wo man eine Vielzahl von verschachtelten ''if-else''-Anweisungen brauchen würde (s.o.) und ein Programm kann dadurch schnell sehr unübersichtlich werden und unnötig lang.\\ | Praktisch gibt es in der Programmierung öfters Situationen oder Probleme, wo man eine Vielzahl von verschachtelten ''if-else''-Anweisungen brauchen würde (s.o.) und ein Programm kann dadurch schnell sehr unübersichtlich werden und unnötig lang.\\ | ||
| Zeile 356: | Zeile 396: | ||
| * Der Ausdruck ''ausdruck'' wird vollständig ausgewertet. | * Der Ausdruck ''ausdruck'' wird vollständig ausgewertet. | ||
| * Wir eine Übereinstimmung mit ''case ausdruck_i'' gefunden, dann wird bei dieser Anweisung die Abarbeitung fortgesetzt. | * Wir eine Übereinstimmung mit ''case ausdruck_i'' gefunden, dann wird bei dieser Anweisung die Abarbeitung fortgesetzt. | ||
| + | * Achtung! Es werden bei Zutreffen eines case-Ausdrucks alle folgenden Anweisungen der restlichen case-Ausdrücke ebenfalls ausgeführt. Sollte dies nicht erwünscht sein, muss man den switch-case-Block mit der ''break''-Anweisung unterbrechen (siehe letzter Punkt). | ||
| * Wird keine Übereinstimmung gefunden, wird bei ''default:'' fortgefahren. | * Wird keine Übereinstimmung gefunden, wird bei ''default:'' fortgefahren. | ||
| * Gibt es kein ''default:'', wird der Anweisungsteil der ''switch''-Anweisung ignoriert. | * Gibt es kein ''default:'', wird der Anweisungsteil der ''switch''-Anweisung ignoriert. | ||
| Zeile 369: | Zeile 410: | ||
| ===== Aufgabe 2 ===== | ===== Aufgabe 2 ===== | ||
| - | Schreibe nun das gleiche Programm nochmal((kommt an die Stelle bon FIXME ;-) )), benutze dieses Mal aber die ''switch-case''-Ablaufsteuerung.\\ | + | Schreibe nun das gleiche Programm nochmal((kommt an die Stelle von FIXME ([[#die_switchcase_ablaufsteuerung|s.o.]]) ;-) )), benutze dieses Mal aber die ''switch-case''-Ablaufsteuerung.\\ |
| Zeile 408: | Zeile 449: | ||
| **6.** Schreib ein Programm das den BMI(([[wpde>Body-Mass-Index|wat'n ditte?]])) ausrechnet. | **6.** Schreib ein Programm das den BMI(([[wpde>Body-Mass-Index|wat'n ditte?]])) ausrechnet. | ||
| + | |||
| + | <html> | ||
| + | <!-- | ||
| + | ====== Lösung ====== | ||
| + | zu 5: | ||
| + | |||
| + | <code java> | ||
| + | // Biblothek zum Einlesen von Zahlen und Buchstaben einbinden | ||
| + | import Prog1Tools.IOTools; | ||
| + | |||
| + | // Klasse Alter | ||
| + | public class Alter { | ||
| + | // Main-Methode | ||
| + | public static void main (String args []) { | ||
| + | // Variable initialisieren | ||
| + | int alter = IOTools.readInteger ("Wie alt bist du? "); | ||
| + | |||
| + | // if Anweisungen / Kommentar dazu | ||
| + | if (alter < 2) { | ||
| + | System.out.println ("Du bist ein Baby! "); | ||
| + | } else { | ||
| + | if (alter < 12) { | ||
| + | System.out.println ("Du bist ein Kind! "); | ||
| + | } else { | ||
| + | if (alter < 18) { | ||
| + | System.out.println ("Du bist ein Jugendlicher! "); | ||
| + | } else { | ||
| + | if (alter < 24) { | ||
| + | System.out.println ("Du bist ein junger Erwachsener! "); | ||
| + | } else { | ||
| + | if (alter < 40) { | ||
| + | System.out.println ("Du bist ein Erwachsener "); | ||
| + | } else | ||
| + | if (alter < 55) { | ||
| + | System.out.println ("Du bist im mittleren Alter! "); | ||
| + | } else | ||
| + | if (alter < 65) { | ||
| + | System.out.println ("Du bist im hohen Alter! "); | ||
| + | } else { | ||
| + | System.out.println ("Du lebst noch?! "); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ...oder... | ||
| + | |||
| + | <code java> | ||
| + | // von: Björn F. | ||
| + | // Biblothek zum Einlesen von Zahlen und Buchstaben einbinden | ||
| + | import Prog1Tools.IOTools; | ||
| + | |||
| + | // Klasse Alter | ||
| + | public class Alter { | ||
| + | // Main-Methode | ||
| + | public static void main (String args []) { | ||
| + | // Variable initialisieren | ||
| + | int alter = IOTools.readInteger ("Wie alst bist du? "); | ||
| + | // if Anweisungen / Kommentar dazu | ||
| + | if (alter < 2) | ||
| + | System.out.println ("Du bist ein Baby! "); | ||
| + | |||
| + | if ((alter >= 2 )&&(alter < 12)) | ||
| + | System.out.println ("Du bist ein Kind! "); | ||
| + | |||
| + | if ((alter >= 12)&&(alter < 18)) | ||
| + | System.out.println ("Du bist ein Jugendlicher! "); | ||
| + | |||
| + | if ((alter >= 18)&&(alter < 24)) | ||
| + | System.out.println ("Du bist ein junger Erwachsener! "); | ||
| + | |||
| + | if ((alter >= 24)&&(alter < 40)) | ||
| + | System.out.println ("Du bist ein Erwachsener "); | ||
| + | |||
| + | if ((alter >= 40)&&(alter < 55)) | ||
| + | System.out.println ("Du bist im mittleren Alter! "); | ||
| + | |||
| + | if ((alter >= 55)&&(alter < 65)) | ||
| + | System.out.println ("Du bist im hohen Alter! "); | ||
| + | |||
| + | if (alter > 65) | ||
| + | System.out.println ("Du lebst noch?! "); | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | --> | ||
| + | </html> | ||