Dart für Anfänger 1.8 Kontrollstrukturen while und do

 

Dart: while
Im letzten Post hatten wir uns switch näher angesehen. Sie erinnern sich, Kontrollstrukturen dienen dazu, eine Programmlogik zu implementieren. Tue das, wenn die Bedingung wahr ist, tue das, wenn die Bedingung falsch ist usw.  while hat eine Schwesterkonstrukt, das sehr ähnlich funktioniert do. Für die Codebeispiele verwenden Sie am besten das DartPad.




While

while( Ausdruck wahr ist){ führe die Anweisungen aus }

While, was man auch mit während übersetzen kann, der Ausdruck wahr ist, werden die Anweisungen im {...} Block ausgeführt. Beispiel:


void main() {
  
  int a = 0;
  
  while(a < 4){
    
    print(a);
    a++;
  }
}

Sie sehen oben auch eine wichtige Tatsache: Sie müssen selbst dafür sorgen das der Ausdruck falsch wird. Die integer Variable haben Sie mit 0 initialisiert. Im Codeblock der while Schleife erhöhen sie diese mit a++ jeweils um 1. Genau vier Mal wird der Ausdruck in der while(..) Schleife wahr sein. 0,1,2,3, bei 4 ist er falsch und der Codeblock {...} wird nicht mehr ausgeführt.
Was Ihnen vielleicht auch aufgefallen ist: es wäre möglich, das eine while Schleife nie ausgeführt wird. Ist int a vor der while Schleife grösser als 3, kann der Ausdruck in while(..) nie wahr werden, dementsprechend wird der Code im Codeblock {...} nie ausgeführt. Um diesen Umstand zu umgehen, gibt es jedoch die do Variante.

Do

do{führe Anweisungen aus}while( Ausdruck wahr ist)

void main() {
  
  int a = 0;
  
  while(a < 4){
    
    print(a);
    a++;
  }
  
  a = 4;
  
  do{
    
    print(a);
    a++;
    
  }while(a < 4);
}

Im Code oben sehen Sie jetzt beide Varianten. Vor dem do{...} Block haben wir mit a = 4 den Ausdruck von while(..) auf falsch gesetzt. Wenn Sie den Code im DartPad ausführen, wird die do Schleife trotzdem 4 drucken. Das ist logisch, da die Prüfung des Ausdrucks in while(..) erst anschliessend erfolgt.
Die do Schleife findet dann Anwendung, wenn Sie mit Sicherheit wissen, das der Codeblock mindestens 1x ausgeführt werden muss.
Sowohl bei while(..){...} als auch bei do{...}while(..) können Sie die Schlüsselwörter continue und break einsetzen. Auf dieses Thema werde ich in einem separaten Post eingehen. Bis bald!

Kommentare

Beliebte Posts aus diesem Blog

Flutter -- ohne Dart geht es nicht 2 -- einfache Variablen Typen

Material Design in Flutter Teil 2

Dart Final Const