Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
| start:info:11if:05_ablaufsteuerung 07.11.2008 08:19 | 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 409: | Zeile 450: | ||
| **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 ====== | ====== Lösung ====== | ||
| zu 5: | zu 5: | ||
| Zeile 497: | Zeile 540: | ||
| } | } | ||
| </code> | </code> | ||
| + | --> | ||
| + | </html> | ||