Dart évalue des instructions conditionnelles afin d’exécuter un code spécifique. Plusieurs fois dans un programme, nous sommes tenus de vérifier une condition particulière. Selon la condition, qu’elle soit vraie ou fausse, nous exécuterons un ensemble d’instructions liées à chaque situation.

En fait, if-else est assez simple à utiliser et à comprendre. Elle est très utile pour écrire une logique assez complexe. De plus, les conditions peuvent être combinées avec d’autres concepts puissants du langage Dart.

instructions conditionnelles

Les instructions conditionnelles avec if

L’instruction conditionnelle if, qui veut dire (Si) permet au programme de faire quelque chose uniquement si une certaine condition est vraie.

Si une condition est remplie, le code du bloc if sera exécuté, par contre si la condition est fausse, le code du bloc if ne sera pas exécuté.

if(condition){
       //Exécute ce code si la condition est évaluée à true.
 }
// instruction suivante

Donc, c’est la syntaxe d’un simple bloc if. Nous écrivons la condition entre parenthèses et si la condition est évaluée à true le code à l’intérieur des accolades {} sera exécuté. Assez simple ! Prenons un exemple.

main() {
  int num = 20;
  
  if(num>0){
    print("$num est supérieur à 0.");
  }
  
  print("Nous avons testé une instruction if !");
}

Exécution du code.

20 est supérieur à 0.
Nous avons testé une instruction if !

Les instructions conditionnelles avec if…else

Vous pouvez étendre une instruction if pour fournir du code à exécuter au cas où la condition est évaluée à false. C’est ce qu’on appelle l’instruction if-else (Si-Sinon).

Si L’instruction conditionnelle if est évaluée à true, le bloc de code sera exécuté. Sinon, il passera aux blocs else.

La syntaxe de l’instruction if-else dans Dart ressemble à ceci.

if(condition){
       //Exécute ce code si la condition est évaluée à true.
 }else{
      //Exécute ce code si la condition est évaluée à false.
 }

De plus, nous pouvons combiner plusieurs blocs if-else.

main() {
  var a = 2;

    if(a<5){
        print("condition : true");   
    }else{
        print("condition : false");   
    }

print("*** Deuxième bloc if ***");
    var b = 7;

    if(b<4){
        print("condition : false");     
    }else{
        print("condition : false");    
    }
}
condition : true
*** Deuxième bloc if ***
condition : false

Dans le cas où la condition est évaluée à true, print du bloc if est exécutée, tandis que dans le cas où la condition est évaluée à false, print du bloc else est exécutée.

Les instructions conditionnelles avec if…else if

Parfois, vous voudrez vérifier une condition, puis vérifier une autre condition si la première n’est pas vraie.

On utilise if-else if lorsqu’il y a plusieurs conditions à vérifier.

if(test_1){
	// à exécuter si test_1 est true
}else if(test_2){
	// à exécuter si test_2 est true
}else if(test_3){
	// à exécuter si test_3 est true
}else{
	// à exécuter si aucun test n'est true
}
	
// instruction suivante
  • Il évalue d’abord la condition test_1. Si c’est true, il exécute les instructions du bloc if et le contrôle sort du test if-else et passe à l’instruction suivante, sinon, il vérifie le test suivant.
  • De la même manière, il évalue test_2. Si c’est true, il exécute les instructions dans son bloc et le contrôle passe à l’instruction suivante, sinon il vérifiera une autre expression de test.
    Enfin, si aucune expression de test n’est évaluée à true, il exécute les instructions dans le bloc else et le contrôle passe à l’instruction suivante.
main() {
  int num = 100;
  
  if(num==0){
    print("ZÉRO");
  }else if(num>0){
    print("POSITIF");
  }else{
    print("NÉGATIF");
  }
}

En fait, num est affecté à la valeur 100. Puisque l’expression num > 0 est évaluée à true. L’instruction print("POSITIF") est exécutée.

Les conditions imbriquées

Il est également possible d’avoir une condition imbriquée à l’intérieur d’une autre. Parfois, vous voudrez tester deux conditions en même temps.

main() {
  int num = 50;
  
  if(num>60){
    if(num % 2==0){
      print("$num est plus grand que 60 et il est pair");
    }else{
      print("$num est plus grand que 60 et il est impair");
    }
  }else{
    if(num % 2==0){
      print("$num est inférieur à 60 et il est pair");
    }else{
      print("$num est inférieur à 60 et il est impair");
    }
  }
  
}

Dans cet exemple nous avons utilisé l’opérateur modulo % pour vérifier le reste de la division.

Exécution du code.

50 est inférieur à 60 et il est pair

L’opérateur conditionnel ternaire

Les opérateurs ternaires sont une autre façon d’écrire un bloc if-else, mais en une seule ligne. On les utilises pour écrire des conditions rapides et petites, mais nous ne devrions pas les utiliser pour des vérifications logiques complexes car cela pourrait devenir compliqué..

const score = 80;

String message;
if (score >= 70) {
  message = 'Bravo !';
} else {
  message = 'Bonne chance dans la prochaine fois !';
}

Voici la syntaxe d’un opérateur conditionnel ternaire :

(condition) ? valueIfTrue : valueIfFalse;

Donc, notre exemple précédent devient :

const score = 80;
const message = (score >= 60) ? 'Bravo !' : 'Bonne chance dans la prochaine fois !';
print(message);

Exécution du code.

Bravo !

Les opérateurs ternaires commencent par une condition, il est conseillé de mettre votre condition entre parenthèses, mais ce n’est pas obligatoire. Ensuite, nous avons un point d’interrogation?. Tout ce que nous écrivons entre ? et : sera exécuté si la condition est vraie, et tout ce que nous écrivons après les deux point : sera exécuté si la condition est fausse.

Les conditions Dart avec switch

L’instruction switch aide à éviter d’utiliser une longue chaîne d’instructions if-else. Cette structure teste la condition dans de multiples cas, et si une correspondance est trouvée, elle exécute le bloc de code associé à ce cas particulier.

Donc, on utilise switch, lorsqu’il existe de nombreuses conditions possibles pour une seule valeur. De plus, chaque cas dans une instruction switch doit se terminer par le mot-clé break afin de quitter le cas actuel. Sinon, vous obtiendrez une erreur.

Voici la syntaxe :

switch(expression){
	case a:
		//le code du cas a
		break;
	case b:
		//le code du cas b
		break;
	case c:
		//le code du cas c
		break;
	default:
		//le code par default
}

En fait, l’expression est comparée à la valeur de chaque cas. Notez que le type de données de l’expression et des cas doivent être les mêmes. Nous pouvons avoir un nombre illimité de cas de commutation différents. Le programme continuera de vérifier chacun de ces cas de haut en bas. Si un cas correspond, il exécute son bloc de code.

Prenons un exemple :

main() 
 {
  var x = 1;
  switch (x) {
    case 1:
      print("Un");
      break;
    case 2:
      print("Deux");
      break;
    case 3:
      print("Trois");
      break;
    default:
      print("Inconnu");
  }
}
Un

Changez la valeur de x pour voir ce qui ce passera. En fait, le bloc par défaut s’exécutera uniquement si la valeur de x n’est pas 1, 2 ou 3.

L’instruction continue

L’instruction continue est utilisée pour exécuter une instruction case différente. Vous devez utiliser une étiquette avec l’instruction continue et la même étiquette sera utilisée au-dessus de l’instruction requise. break n’est pas nécessaire si vous utilisez continue.

main() {
  var x = 'Deux';
  switch (x) {
    case 'Un':
      print('Un : 1');
      break;
    case 'Deux':
      print('Deux : 2');
      continue CasPair;
    case 'Trois':
      print('Three : 3');
      break;
    CasPair:
    case 'pair':
      print("C‘est un nombre pair.");
  }
}
Deux : 2
C‘est un nombre pair.

Le programme exécute l’instruction print qui remplie la condition définie pour le cas ‘Deux’ . Ensuite, il passe directement à case 'pair' qui est liée à continue avec le mot CasPair. Vous pouvez replacer CasPair et pair par ce que vous voulez.

Catégories : Dart

2 commentaires

Nelara · 24 décembre 2021 à 13 h 25 min

Il y a pas meilleur cour en français, merci.
J’apprend sans laptop et je comprend parfaitement

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *