Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
start:info:11if:05_ablaufsteuerung 07.11.2008 08:21 | 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> |