fbpx

4. Les opérateurs de condition et de boucle

La deuxième notion à aborder dans ce chapitre sur le Dart et celle des conditions et des boucles.

Dans tous les langages, ces différents opérateurs sont utilisés pour réaliser des opérations de base, comme effectuer une condition sur un nombre ou parcourir une liste de données.

Ces opérateurs de conditions et de boucles s’appliqueront justement à des variables, car il s’agira de vérifier leur valeur ou leur contenu et d’exécuter du code en fonction.

1. Les conditions (if & else)

Commençons avec les opérateurs de conditions qui permettent de vérifier le contenu de nos variables.

Par exemple, nous pouvons déclarer une variable de type nombre et y stocker l’âge d’un utilisateur.

On peut alors vérifier si l’utilisateur est majeur en effectuant une condition sur son âge que l’on compare à 18:

int age = 25;
if (age >= 18) {
  print('il est majeur');
} else {
  print('il est mineur');
}

Entrez ce code dans DartPad à l’intérieur de votre fonction main() et cliquez sur le bouton « RUN ».

Vous devriez voir dans la console le résultat « il est majeur« . Modifiez maintenant la valeur de la variable age à 12 ans par exemple et cliquez à nouveau sur « RUN« .

Cette fois-ci le résultat affiché sera « il est mineur« . Nous sommes donc capables d’effectuer une condition de vérification sur une variable de type nombre.

Dans le développement mobile, on utilise aussi souvent les conditions sur les variables booléennes, avec les valeurs true ou false.

Par exemple avec le code ci-dessous:

bool isAdmin = true;
if (isAdmin) {
  print('il est adminstrateur');
} else {
  print('il n\'est pas adminstrateur');
}

Quand il s’agit d’un booléen, on peut écrire if(isAdmin == true) ou directement if(isAdmin) pour gagner du temps.

Dans le cas où on veut détecter la valeur false, on peut écrire if(isAdmin == false) ou if(!isAdmin).

if (!isAdmin) {
  print('il n\'est pas adminstrateur');
}

Le symbole « ! » renvoie à l’opposé de la valeur true, soit false.

2. Les boucles (for, foreach, while)

Passons maintenant aux opérateurs comme for() qui nous permettent d'effectuer des boucles dans notre code Dart.

Une boucle permet de répéter une opération avec certaines conditions ou en parcourant une liste par exemple.

On peut notamment préciser tous les paramètres de cette boucle directement dans la fonction for():

for (int month = 1; month <= 12; month++) {
  print(month);
}

Mais on utilisera aussi souvent les boucles for pour parcourir des listes de données:

List startups = ['Apple', 'Google', 'Facebook', 'Amazon'];
for (String name in startups) {
  print(name);
}

On peut aussi utiliser la fonction forEach() pour parcourir et renvoyer les données d'une liste:

startups.forEach((name) => print(name));

Le résultat est le même qu'avec la fonction for() précédente, donc n'hésitez pas à utiliser ce forEach() pour gagner du temps.

Si vous utilisez une liste de nombre par exemple, vous pouvez préciser que le résultat à retourner sera, lui aussi, un nombre:

List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((int i) => print(i));

On pourra utiliser ce type de syntaxe pour parcourir nos données Firebase.

On peut prendre un autre exemple plus complet avec une liste de map Dart, qui stocke des informations sur des entreprises:

List startups = [
  {
    'name': 'Apple',
    'location': 'Cupertino'
    },
  {
    'name': 'Netflix',
    'location': 'Los Gatos'
    },
  {
    'name': 'Tesla',
    'location': 'Freemont'
    }
];

On peut utiliser l'opérateur forEach() pour parcourir cette liste et afficher la phrase suivante dans la console:

Le siège de Apple se trouve à Cupertino
Le siège de Netflix se trouve à Los Gatos
Le siège de Tesla se trouve à Freemont

Pour cela rien de plus simple on utilise la fonction print() après avoir renvoyé chaque objet de notre liste:

startups.forEach((startup) => {
  print('La siège de ${startup['name']} se trouve à ${startup['location']}')
});

Il existe d'autres opérateurs que nous utiliserons moins souvent comme while qui signifie tant que, et qui permet d'effectuer une condition.

Par exemple on peut ajouter +1 à une variable tant que celle-ci ne dépasse pas la valeur 6:

int nombre = 0;
while(nombre < 6) { 
  print(nombre);
  nombre++; 
} 

Il existe aussi une variante de cet opérateur appelé do-while, qui permet de préciser une action en parallèle du tant que.

Si on reprend notre liste de startups, on utilise cet opérateur pour la parcourir et afficher ses informations:

int i = 0;
List startups = ['Apple', 'Google', 'Facebook', 'Amazon'];
do {
  print('La startup ${startups[i]} se trouve à la case $i');
  i++;
} while (i < startups.length);

Voilà pour les opérateurs principaux du Dart dont nous trouverons des utilités plus intéressantes durant le reste de cette formation.