dart
Flux de contrôle
Recherche…
Sinon
Dart a Si Else:
if (year >= 2001) {
print('21st century');
} else if (year >= 1901) {
print('20th century');
} else {
print('We Must Go Back!');
}
Dart a également un opérateur ternaire if :
var foo = true;
print(foo ? 'Foo' : 'Bar'); // Displays "Foo".
En boucle
Les boucles while et do while sont autorisées dans Dart:
while(peopleAreClapping()) {
playSongs();
}
et:
do {
processRequest();
} while(stillRunning());
Les boucles peuvent être terminées en utilisant une pause:
while (true) {
if (shutDownRequested()) break;
processIncomingRequests();
}
Vous pouvez ignorer les itérations dans une boucle en utilisant continue:
for (var i = 0; i < bigNumber; i++) {
if (i.isEven){
continue;
}
doSomething();
}
Pour boucle
Deux types de boucles for sont autorisés:
for (int month = 1; month <= 12; month++) {
print(month);
}
et:
for (var object in flybyObjects) {
print(object);
}
La boucle for-in est pratique lorsque vous parcourez simplement une collection Iterable . Il existe également une méthode forEach laquelle vous pouvez appeler des objets Iterable qui se comportent comme des for-in :
flybyObjects.forEach((object) => print(object));
ou plus concis:
flybyObjects.forEach(print);
Boîtier de commutation
Dart dispose d'un commutateur qui peut être utilisé à la place des instructions if-else longues:
var command = 'OPEN';
switch (command) {
case 'CLOSED':
executeClosed();
break;
case 'OPEN':
executeOpen();
break;
case 'APPROVED':
executeApproved();
break;
case 'UNSURE':
// missing break statement means this case will fall through
// to the next statement, in this case the default case
default:
executeUnknown();
}
Vous ne pouvez comparer que des constantes de type entier, chaîne ou à la compilation. Les objets comparés doivent être des instances de la même classe (et non de l'un de ses sous-types), et la classe ne doit pas remplacer ==.
Un aspect surprenant de la commutation dans Dart est que les clauses non vides doivent se terminer par une rupture, ou moins fréquemment, continuer, lancer ou retourner. C'est-à-dire que les clauses non vides ne peuvent pas tomber. Vous devez explicitement terminer une clause non vide, généralement avec une interruption. Vous obtiendrez un avertissement statique si vous omettez de rompre, de continuer, de lancer ou de renvoyer, et le code sera erroné à cet emplacement lors de l'exécution.
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
// ERROR: Missing break causes an exception to be thrown!!
case 'CLOSED': // Empty case falls through
case 'LOCKED':
executeClosed();
break;
}
Si vous voulez fall-through dans un non vide case , vous pouvez utiliser continue et une étiquette:
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
continue locked;
locked: case 'LOCKED':
executeClosed();
break;
}