Dart für Anfänger 1.8 Kontrollstrukturen switch
Dart |
Wir werden in diesem Post beides machen. Es ermöglicht interessantere Beispiele und ist abwechslungsreicher !
Kontrollstrukturen
Programmieren heisst nicht nur Abläufe anstoßen, sondern auch auf Ergebnisse reagieren. Starten Sie deshalb mit Visual Studio Code und diesem einfachen Code:
import 'dart:io'; String eingabe; void main(List<String> arguments) { eingabe = stdin.readLineSync(); }
import 'dart:io'; String eingabe; void main(List<String> arguments) { print(''' Bitte wählen Sie: A. Integer Wert erfassen B. Boolean Wert erfassen C. Double Wert erfassen '''); eingabe = stdin.readLineSync(); eingabe = eingabe.toLowerCase(); switch (eingabe) { case 'a': print('Sie haben sich entschieden einen Integer Wert zu erfassen'); break; case 'b': print('Sie haben sich entschieden einen Boolen Wert zu erfassen'); break; case 'c': print('Sie haben sich entschieden einen Double Wert zu erfassen'); break; default: print('Ungültige Eingabe !'); } }
print(''' Bitte wählen Sie: A. Integer Wert erfassen B. Boolean Wert erfassen C. Double Wert erfassen ''');
Die nächste "Neuheit" ist eine Funktion der String Bibliothek. eingabe.toLowerCase(..) wandelt die Zeichenkette, die wir mit stdin.readLineSync(..) eingelesen haben in Kleinbuchstaben. Nun aber zum Hauptthema des Posts: switch
switch (eingabe) { case 'a': print('Sie haben sich entschieden einen Integer Wert zu erfassen'); break; case 'b': print('Sie haben sich entschieden einen Boolen Wert zu erfassen'); break; case 'c': print('Sie haben sich entschieden einen Double Wert zu erfassen'); break; default: print('Ungültige Eingabe !'); }
Sollte eingabe nicht "a" enthalten, wird auf "b" und "c" getestet. Sollten alle drei nicht zutreffen, wird der Standard ausgeführt, der Code nach default. Bitte beachten Sie, im default Block wird keine break Anweisung mehr benötigt. Jetzt wandeln wir diesen Code ab, um noch eine weitere Möglichkeit von switch aufzuzeigen:
import 'dart:io'; var eingabe; void main(List<String> arguments) { print(''' Bitte wählen Sie: A. Integer Wert erfassen B. Boolean Wert erfassen C. Double Wert erfassen '''); eingabe = stdin.readLineSync(); eingabe = eingabe.toLowerCase(); switch (eingabe) { case 'a': print('Sie haben sich entschieden einen Integer Wert zu erfassen'); continue istZahl; case 'b': print('Sie haben sich entschieden einen Boolen Wert zu erfassen'); continue istZahl; case 'c': print('Sie haben sich entschieden einen Double Wert zu erfassen'); continue istZahl; istZahl: case 'istZahl': print('Zahlen sind wundervoll'); break; default: print('Ungültige Eingabe !'); } }
Der Typ var in Dart
Die Variable vom Typ var in Dart ist ein spezieller Fall. Im Code oben definieren wir die Variable, ohne ihr einen Wert zu zuweisen. Wir können dieser Variable im Verlauf des Programmes sowohl Zeichenketten, wie auch Zahlen zu weisen. Dart wird keine Beanstandungen generieren. Der große Nachteil dieses Typs ist die schlechte Lesbarkeit im Code und damit eine höhere Fehleranfälligkeit. Wenn Sie fremden Code analysieren und auf eine var Variable treffen, kann ihre Bedeutung / Verwendung unklar sein. Ganz anders als eine double Variable zum Beispiel. Sie dient eindeutig einer Gleitkommazahl.
Zurück zum switch Block im Code oben. In den einzelnen case Blöcken sind die break Anweisungen entfernt und durch continue ersetzt worden. Dabei besteht jetzt ein neuer istZahl Block. Dieser wird ausgeführt, wenn ein case zutrifft und erst anschliessend das switch Konstrukt mit break verlassen. Mit continue lässt sich also noch eine weitere Logik im switch Konstrukt einbinden. Das wars für diesen Post. Bis bald !
Kommentare
Kommentar veröffentlichen