Dart für Anfänger 1.9 Kontrollstrukturen - noch mehr Kontrolle
In dieser kleinen Reihe hatten wir uns bereits mit switch, while und do beschäftigt. In diesem Post starten wir mit if und for. Beide sind in sehr vielen Programmiersprachen implementiert. Die Dart Version bietet hier keine großen Überraschungen.
Im Code oben sehen Sie ein Konstrukt, das sowohl if, else if und else enthält. Den Code kann man so lesen: "Wenn a gleich 5 ist, drucke a in das Terminal und verlasse das if Konstrukt, sonst prüfe ob a gleich 6 ist, wenn ja drucke a in das Terminal und verlasse das if Konstrukt, sonst drucke "Fehler" ins Terminal."
Die nächste Schleifenstruktur die Sie kennenlernen sollten ist:
Der Code oben zeigt das Grundsätzliche: Zuerst initialisieren Sie eine Variable (zaehler = 0), anschliessend legen Sie die Abbruchbedingung fest (zaehler < 5). Am Ende sorgen Sie dafür das zaehler erhöht wird (zaehler++), damit die Abbruchbedingung auch erreicht werden kann. Im übrigen druckt der Code 5,6,7,8,9 in das Terminal, bevor die Schleife beendet wird. Die erste Überprüfung der Abbruchbedingung erfolgt, wenn zaehler noch den Inhalt 0 hat. Solange zaehler kleiner als 5 ist, wird die print(..) Funktion ausgeführt und erst anschliessend zaehler um 1 erhöht.
Auch das Codebeispiel oben ist fast selbsterklärend. Mit dem Schlüsselwort List definieren wir eine Liste in Dart. Der Zusatz <String> definiert diese, als Liste von Zeichenketten.
Oben sehen wir 'krimi': 'Tatort'. Dabei fungiert krimi als der Schlüssel und Tatort als Wert. Die for(..) Schleife bezieht sich auf den Schlüssel und druckt anschliessend in der print(..) Funktion Schlüssel und Wert aus.
if
if kann man übersetzen mit: "Wenn die Bedingung wahr ist, dann mache folgendes, sonst mach etwas anderes."
Ein Code Beispiel verdeutlicht das:
void main() { int a = 5; if(a == 5){ // ist true print(a); // es wird 5 in das Terminal gedruckt }else if(a == 6){ // ist false und kommt nicht zur Anwendung print(a); }else{ print('Fehler'); // die Default Variante für false } }
Es sind auch andere Varianten korrekt, siehe den Code unten:
void main() { int a = 5; if(a == 5){ // ist true print(a); // es wird 5 in das Terminal gedruckt }else { // ein else if Teil ist nicht Pflicht print('Fehler'); } if(a == 5){ // auch ein if Konstrukt ohne else Teil ist zulässig print('Richtig'); } }
For und For...in
void main() { int a = 5; for(int zaehler = 0; zaehler < 5; zaehler++){ print(a + zaehler); } }
Obwohl wir in dieser Postserie das Thema Map und List noch nicht angeschnitten haben, will ich aus Gründen der Vollständigkeit auch die entsprechende Variante aufzeigen:
void main() { List<String> woerter = ['Haus','Katze','Spiele']; for (String wort in woerter){ print(wort); } }
In der for(...) Schleife wiederum, wird jede Zeichenkette ins Terminal gedruckt.
Das ganze funktioniert auch mit einer Map. Eine Map in Dart ist eine Liste von Schlüssel / Wert Paaren. Hier der Beispielcode:
void main() { Map fernsehserien = {'krimi':'Tatort','sci-fi':'star trek','show':'Verstehen Sie Spass'}; for(String key in fernsehserien.keys){ print('key:' +key); print('value:' +fernsehserien[key]); } }
Das Ergebnis im Terminal sieht wie folgt aus:
Beide, List und Map, sind ein umfangreicheres Thema und Gegenstand separater Posts. Die Codebeispiele sind im DartPad lauffähig. Bis bald!
Kommentare
Kommentar veröffentlichen