codestory

Schleifen in Dart

  1. Was ist Schleife?
  2. Die Schleife for
  3. Die Schleife for..in
  4. Die Schleife while
  5. Die Schleife do..while
  6. Die Anweisung break in die Schleife
  7. Der Statement continue in die Schleife
  8. Beschriftete Schleifen

1. Was ist Schleife?

In Programmiersprachen ermöglichen die Schleifen die wiederholte Ausführung eines Codeblocks.
Die Sprache Dart bietet die folgenden Arten von Schleifen:
  • for
  • for..in
  • while
  • do..while
Die Anweisungen break und continue können innerhalb der Schleife erscheinen:
break
Wenn die Anweisung break angetroffen wird, beendet das Programm die Schleife sofort.
continue
Wenn die Anweisung continue angetroffen wird, überspringt das Programm die Zeilen unter continue und führt die nächste Iteration aus (wenn die Schleifenbedingung immer noch wahr ist).

2. Die Schleife for

Die Syntax von der Schleife for:
for (initialValues; condition; updateValues) {
    // Statements to be executed repeatedly
}
  • InitialValues: Werte für verwandte Variablen in der Schleife initialisieren
  • condition: Bedingung zum Ausführen des Blocks.
  • updateValues: Aktualisieren Sie neue Werte für Variablen.
Zum Beispiel:
loop_for_ex1.dart
void main() {
  print('For loop example');
 
  for (var i = 0; i < 10; i = i + 3) {
    print('i= $i');
  }
}
Output:
For loop example
i= 0
i= 3
i= 6
i= 9
Beispiel: An der Bedingung einerSchleife for sind zwei Variablen beteiligt:
loop_for_ex2.dart
void main() {
  print('For loop example');

  for (var i = 0, j = 0; i + j < 10; i = i + 1, j = j + 2) {
    print('i = $i, j = $j');
  }
}
Output:
For loop example
i = 0, j = 0
i = 1, j = 2
i = 2, j = 4
i = 3, j = 6

3. Die Schleife for..in

Die Schleife for..in wird verwendet, um die Elemente einer Iterable zu durchlaufen.
In der Programmiersprache Dart ist List ein Nachkomme von Iterable, das die gleichen Funktionen wie eine Reihe anderer Programmiersprachen aufweist.
Beispiel: Verwenden Sie die Schleife for..in, um über die Elemente einer List zu iterieren:
loop_for_in_list_ex1.dart
void main() {
  // Create a List:
  var names = ['Tom', 'Jerry', 'Donald'];
 
  for (var name in names) {
    print('name: $name');
  }
}
Output:
name: Tom
name: Jerry
name: Donald
Beispiel: Verwenden Sie die Schleife for..in, um über die Elemente eines Objekts Set zu iterieren.
loop_for_in_set_ex1.dart
void main() {
  // Create a Map object:
  // (key, value) <--> (Emloyee Number, Salary).
  var salaryMap = {'E01': 1200,
                   'E02': 1500,
                  'E03': 900};
  // The Set object.
  var keySet = salaryMap.keys;

  for (var key in keySet) {
    print('Employee Number: $key, salary: ${salaryMap[key]}');
  }
}
Output:
Employee Number: E01, salary: 1200
Employee Number: E02, salary: 1500
Employee Number: E03, salary: 900

4. Die Schleife while

Die Syntax der Schleife while:
while (condition)  {
    // Do something here..
}
Zum Beispiel:
loop_while_ex1.dart
void main() {
  print('While loop example');
  var x = 2;
  while (x < 10) {
    print('Value of x = $x');
    x = x + 3;
  }
  print('Done!');
}
Output:
While loop example
Value of x = 2
Value of x = 5
Value of x = 8
Done!

5. Die Schleife do..while

Die Schleife do..while wird verwendet, um ein Programmsegment mehrmals auszuführen. Die Eigenschaft von do..while ist, dass ein Codeblock immer mindestens einmal ausgeführt wird. Nach jeder Iteration überprüft das Programm die Bedingung erneut, ist die Bedingung immer noch wahr, wird die nächste Iteration ausgeführt.
Die Syntax der Schleife do..while:
do {  
   // Do something
}
while(condition);
Zum Beispiel:
loop_do_while_ex1.dart
void main() {
  var value = 3;
  do {
    print('Value = $value');
    value = value + 3;
  } while (value < 10);
}
Output:
Value = 3
Value = 6
Value = 9

6. Die Anweisung break in die Schleife

break ist eine Anweisung, die im Block einer Schleife vorkommen kann. Dies ist die Anweisung zum bedingungslosen Beenden der Schleife.
Zum Beispiel:
loop_break_ex1.dart
void main() {
  print('Break example');
  var x = 2;
  while (x < 15) {
    print('----------------------');
    print('x = $x');
    // If y = 5 then exit the loop.
    if (x == 5) {
      break;
    }
    // Increase value of x by 1
    x = x + 1;
    print('x after + 1 = $x');
  }
  print('Done!');
}
Output:
Break example
----------------------
x = 2
x after + 1 = 3
----------------------
x = 3
x after + 1 = 4
----------------------
x = 4
x after + 1 = 5
----------------------
x = 5
Done!

7. Der Statement continue in die Schleife

continue ist eine Anweisung, die in einer Schleife auftreten kann. Wenn die Anweisung continue angetroffen wird, überspringt das Programm die Zeilen unter dem continue und startet eine neue Iteration (wenn die Bedingung immer noch wahr ist).
Zum Beispiel:
loop_continue_ex1.dart
void main() {
  print('Continue example');
  var x = 2;
  while (x < 7) {
    print('----------------------');
    print('x = $x');

    if (x % 2 == 0) {
      x = x + 1;
      continue;
    } else {
      x = x + 1;
      print('x after + 1 = $x');
    }
  }
  print('Done!');
}
Output:
Continue example
----------------------
x = 2
----------------------
x = 3
x after + 1 = 4
----------------------
x = 4
----------------------
x = 5
x after + 1 = 6
----------------------
x = 6
Done!

8. Beschriftete Schleifen

Dart ermöglicht es Ihnen, ein Label für eine Schleife zu setzen. Dies ist eine Möglichkeit, eine Schleife zu benennen, und ist nützlich, wenn Sie mehrere verschachtelte Schleifen in einem Programm verwenden.
  • Sie können die Anweisung "break labelX" verwenden, um die Schleife mit der Bezeichnung "break labelX" zu break (unterbrechen).
  • Sie können die Anweisung "continue labelX" verwenden, um die Schleife mit der Bezeichnung labelX zu continue (fortzusetzen).
Die Syntax zum Deklarieren einer Schleife mit Labels.
// for loop with Label.
label1: for( ... )  {
    
}
// while loop with Label.
label2: while ( ... )  {

}
// do-while loop with Label.
label3: do  {
    
} while ( ... );
Beispiel: Verwenden Sie beschriftete Schleifen und eine Anweisung break.
loop_break_labelled_ex1.dart
void main() {
  print('Labelled Loop Break example');
  var i = 0;
  label1:
  while (i < 5) {
    print('----------------------');
    print('i = $i');
    i++;
    label2:
    for (var j = 0; j < 3; j++) {
      print('  --> $j');
      if (j > 0) {
        // Exit the loop with label1.
        break label1;
      }
    }
  }
  print('Done!');
}
Output:
Labelled Loop Break example
----------------------
i = 0
  --> 0
  --> 1
Done!
Beispiel: Verwenden Sie beschriftete Schleifen und die Anweisung continue.
loop_continue_labelled_ex1.dart
void main() {
  var i = 0;
  label1:
  while (i < 5) {
    print('outer i=  $i');
    i++;
    label2:
    for (var j = 0; j < 3; j++) {
      if (j > 0) {
        continue label2;
      }
      if (i > 1) {
        continue label1;
      }
      print('inner i= $i, j= $j');
    }
  }
}
Output:
outer i=  0
inner i= 1, j= 0
outer i=  1
outer i=  2
outer i=  3
outer i=  4