Dart für Anfänger 1.9 Kontrollstrukturen - noch mehr Kontrolle

Dart
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. 

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
  }
  
}

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."

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');
  }
  
}

Die nächste Schleifenstruktur die Sie kennenlernen sollten ist:

For und For...in

void main() {
  
  int a = 5;
  
  
  for(int zaehler = 0; zaehler < 5; zaehler++){
    
    print(a + zaehler);
  }
  
}

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.

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);
    
  }
  
}

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.
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]);
  }
  
}

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.

Das Ergebnis im Terminal sieht wie folgt aus:

Terminalausgabe


Beide, List und Map, sind ein umfangreicheres Thema und Gegenstand separater Posts. Die Codebeispiele sind im DartPad lauffähig. Bis bald!

Kommentare

Beliebte Posts aus diesem Blog

Material Design in Flutter Teil 2

Dart Basic: Listen Part 1

Listen in Dart (2021): Part 1 List.filled List.empty und List.add