Bedingte Anweisung (if und switch) - flutter-tutorial-de/dart-basics-tutorial GitHub Wiki
Am einfachsten kannst du die Beispiele in https://dartpad.dev ausführen:
Programm im Tutorial markieren und kopieren (Strg-C), im DartPad einfügen (Strg-V) und auf Run" klicken.
Programme brauchen die Möglichkeit, etwas nur dann auszuführen, wenn eine Bedingung erfüllt ist:
Gib die Zahlen 1 bis 12 rechtsbündig aus.
Erster Versuch:
void main() {
for (var number=1; number<=12; number++){
print(number);
}
}
Die Ausgabe
1 2 3 4 5 6 7 8 9 10 11 12ist linksbündig, nicht rechtsbündig. Wir müssen also ein Leerzeichen einfügen, wenn die Zahl kleiner ist als 10. Ist die Zahl gleich oder größer 10, kann sie ohne Leerzeichen ausgegeben werden.
if ( bedingung ) wahr-block
- oder:
Die Bedingung wird ausgewertet. Wenn diese erfüllt ist, wird der wahr-block ausgeführt. Ist die Bedingung nicht erfüllt und gibt es einen falsch-block, wird der falsch-block ausgeführt
void main() {
for (var number=1; number<=12; number++){
if (number < 10){
print(" $number");
} else {
print(number);
}
}
}
- In der for-Schleife erzeugen wir die Zahlen 1 bis 12
- Es folgt die Prüfung, ob eine einstellige Zahl vorliegt, also ob number kleiner ist als 10.
- Wenn ja, wird der String " $number" ausgegeben, also ein Leerzeichen und die Zahl.
- Wenn nein, wird die Zahl ohne Leerzeichen ausgegeben.
Die if-Anweisung ist eigentlich ein Spezialfall: sie gilt für maximal zwei Alternativen, nämlich Wahrblock oder Falschblock.
Die switch-Anweisung ist eine Verallgemeinerung, sie findet Anwendung bei mehreren Alternativen.
Ausgabe einer Schlangenlinie, genauer gesagt die Ausgabe von Strings, die eine Schlangenlinie ergeben.
switch ( selektor ) { alternative1 alternative2 ... rest-alternative }
- Eine Alternative hat folgende Form:
- oder:
- Die Restalternative sieht so aus:
- Der Wert von Selektor wird mit jedem Wert der Alternativen verglichen.
- Stimmt der Wert damit überein, werden die Anweisungen dieser Alternative ausgeführt.
- Stimmt der Wert mit keinem Wert der Alternativen überein, werden die Anweisungen der Restalternative ausgeführt.
- Die Restalternative kann auch fehlen: In diesem Fall wird bei Nichtfinden des Selektorwertes nichts getan.
void main() {
for (var count=1; count <= 30; count++){
String line = '';
switch(count % 10) {
case 0:
line = '<';
break;
case 1:
case 9:
line = ' +';
break;
case 2:
case 8:
line = ' |';
break;
case 3:
case 7:
line = ' *';
break;
case 4:
case 6:
line = ' O';
break;
case 5:
line = ' >';
}
print(line);
}
}
Einschub: : die Rechenoperation '%' repräsentiert den Divisionsrest:
Beispiel: Bei "21 % 10" ist der Rest der Operation 21 dividiert durch 10, also 1. Entsprechend bei "15 % 3" ist der Divisionsrest von 15 dividiert durch 3, also 0.
- Eine gezählte Schleife erzeugt die Zahlen 1 bis 30.
- Erklärung zum Schleifenblock:
- Im Selektor
switch(counter % 10)wird der Divisionsrest zu 10 berechnet, beispielsweise 23 % 10 ist 3 usw. - Der Selektor kann also die Werte 0 bis 9 annehmen.
- Je nach Wert wird die String-Variable belegt.
- Anschließend wird der String ausgegeben:
print(line);
Weiter geht es mit Kapitel Funktion