Les structures conditionnelles en Dart
-
Présentation
- Dans Dart, les instructions
if , if-else et if-else-if
sont utilisées pour exécuter un bloc de code basé sur une condition donnée. - Dans cette leçon, nous apprendrons la syntaxe et l’utilisation de l’instruction Dart
If
, de l’instruction DartIf-Else
et de l’instruction DartIf-Else-If
. - L’instruction
if
vérifie une condition ne fait quelque chose que si la condition est true. - L’instruction
if else
vérifie une condition et fait quelque chose si une condition est true ou une autre chose si la condition est false. - Par conséquent, les instructions
if
etif else
vous permettent de faire quelque chose en fonction du résultat d’une condition. -
Dart
If
Dart If
est une instruction conditionnelle simple dans laquelle un bloc d’instructions est exécuté si l’expression booléenne donnée est évaluée à true.-
Syntaxe
-
Dart
IF .... ELSE
- On parle de Structure conditionnelle alternative lorsque le traitement du programme dépend d’une aussi seule condition comme la structure conditionnelle simple
IF
. - Mais dans ce cas, si la condition est vraie, la première expression est exécutée; si la condition est fausse, la deuxième expression est exécutée et l’ exécution du programme continue.
-
Syntaxe
-
Exemple
-
Dart
IF...ELSE IF.. ELSE
- Cette structure permet de faire plusieurs évaluations de condition à la suite et exécute une certaine expression quand une seule de ces conditions est vraie.
-
Syntaxe
-
Exemple
-
Dart
Switch/Case
- L'expression
switch
sert à contrôler les opérations conditionnelles en mettant en place plusieurs conditions. Elle a le même fonctionnement que la structure conditionnelleif .. else .. if
tout en offrant une syntaxe plus simple. - Si vous vérifiez la valeur d'une seule variable dans
if ... else ... if
, il est préférable d'utiliser l'instruction switch. -
Syntaxe de switch/case
expression
est l'expression qui sera évaluée dans les différents cas.- L’instruction
case
permet de définir un certain cas. La valeur qui lui est passée sera évaluée avec l'expression définie au départ. - Les mots-clés
break
indiquent à Dart de quitter l'instructionswitch
car les instructions du bloc case sont terminées. - L’instruction
default
est exécutée si aucune valeur des différents cas n’est égale à la valeur de switch . -
switch/case
avec les chaînes de caractères - Une instruction
switch
fonctionne également avec des chaînes de caractères. Essayant l'exemple suivant : -
Remplacement des instructions
else-if
- L'utilisation des instructions if est pratique lorsque vous en avez une ou deux conditions, mais la syntaxe peut être un peu verbeuse quand vous avez beaucoup de conditions. Découvrez ce qui suit
- Exécutez ce code et vous verrez qu'il fait le travail - il en imprime trois comme prévu. La verbosité des lignes
else-if
rendre le code difficile à lire, cependant. - Réécrivez le code ci-dessus en utilisant une instruction switch :
- Remarque : Dans Dart, les instructions
switch
ne prennent pas en charge les plages comme nombre > 5. Seule la vérification d'égalité == est autorisée. Si vos conditions impliquent des plages, alors vous devez utiliser l'instructionIf-else
. -
Application
-
App01
- Écrire un programme Dart qui permet à l'utilisateur de déterminer si un triangle est équilatéral, isocèle ou scalène en fonction des longueurs de ses côtés.
- Le programme doit garantir que l'utilisateur est averti en cas de saisie de longueurs de côtés non valides et doit demander à l'utilisateur de réessayer jusqu'à ce que des valeurs valides soient saisies. Une fois que les longueurs des côtés valides sont saisies, le programme affiche le résultat.
- Types des triangles
- Triangle Équilatéral : Un triangle équilatéral est un triangle ayant les trois côtés de longueur égale. Cela signifie que les trois côtés sont de la même longueur, et les trois angles internes sont également égaux. Un triangle équilatéral est donc un triangle équilatéral aux trois côtés et aux trois angles.
- Triangle Isocèle : Un triangle isocèle est un triangle ayant deux côtés de même longueur (appelés côtés isocèles) et un troisième côté de longueur différente. Les angles opposés aux côtés de même longueur (les côtés isocèles) sont également de même mesure. En d'autres termes, un triangle isocèle a deux côtés égaux et deux angles égaux.
- Triangle Scalène : Un triangle scalène est un triangle dans lequel les trois côtés ont des longueurs différentes. Aucun des côtés n'est égal à un autre, et par conséquent, les trois angles internes sont également de différentes mesures.
- L'inégalité triangulaire
- Les longueurs des côtés ne forment pas un triangle valide lorsque ne sont pas conformes à l'inégalité triangulaire, qui est une règle fondamentale en géométrie. L'inégalité triangulaire stipule que, pour former un triangle valide, la somme de la longueur de deux côtés doit toujours être supérieure à la longueur du troisième côté. En d'autres termes :
- Si a, b, et c sont les longueurs des côtés d'un triangle, alors pour qu'un triangle soit valide, les conditions suivantes doivent être remplies :
- Si l'une de ces conditions n'est pas satisfaite, les longueurs des côtés ne permettent pas de former un triangle valide. Par exemple, si vous avez une situation où la somme de deux côtés est égale à la longueur du troisième côté (par exemple, a + b = c), cela signifie que les côtés sont alignés et ne peuvent pas former un triangle.
-
App02
- Écrire un programme Dart pour afficher le nom du jour en fonction du jour numérique de la semaine en utilisant un
if else if
etSwitch/Case
. -
App03: Calculs sur deux nombres en Dart
- Écrivez un programme en Dart qui demande à l'utilisateur de saisir deux nombres. Ensuite, affichez la somme, le produit, la moyenne et la soustraction de ces deux nombres.
- Consignes :
- Demandez à l'utilisateur de saisir deux nombres à l'aide de l'entrée standard.
- Calculez et affichez la somme, le produit, la moyenne et la soustraction des deux nombres.
- Utilisez des variables appropriées pour stocker les valeurs saisies et les résultats des calculs.
- Gérez les cas où l'utilisateur entre des valeurs non valides.
- Assurez-vous que les résultats sont affichés de manière claire et compréhensible pour l'utilisateur.
-
App04
- Écrire un programme Dart qui demande à l'utilisateur de saisir un mot. Selon que le mot est de type String affiche à l'utilisateur "le mot saisie est une chaine de caractère, si le mot est de type
int
affiche le nombre est pair ou impair.
if (boolean_expression) {
//statement(s)
}
if(condition){
expression 1;
}else {
expression 2;
}
int nombre = 13;
if(nombre % 2 == 0){
print("$nombre est paire");
}else {
print("$nombre est impaire");
}
print("fin du programme");
if(condition 1){
expression 1
}else if(condition 1){
expression 1;
}else if(condition 2){
expression 2;
}else if(condition 3){
expression 3;
}else {
expression 4;
}
double moyenne = 14.56;
String mention;
if (moyenne >= 10 && moyenne < 12) {
mention = 'Passable';
} else if (moyenne >= 12 && moyenne < 14) {
mention = 'Assez bien';
} else if (moyenne >= 14 && moyenne < 16) {
mention = 'Bien';
} else if (moyenne >= 16 && moyenne < 18) {
mention = 'Très bien';
} else if (moyenne >= 18 && moyenne <= 20) {
mention = 'Execellent';
} else {
mention = 'Ajournee';
}
print("Avec une moyenne de $moyenne, votre mention est $mention");
switch (expression){
case condition1 :
instruction1
break;
case condition2 :
instruction2;
break;
case condition3 :
instruction3
break;
default :
instruction par defaut
}
void main() {
String meteo ='nuageuse';
switch (meteo) {
case 'ensoleillée':
print('Mettez de la crème solaire.');
break;
case 'nuageuse':
print('A vos skis.');
break;
case 'pluvieuse':
print('Apportez un parapluie.');
break;
default:
print("Je ne connais pas ce temps.");
}
}
Autres exemples
import 'dart:io';
void main() {
stdout.write('Quel temps fait-il ? ');
String? meteo = stdin.readLineSync();
switch (meteo) {
case 'ensoleillée':
print('Mettez de la crème solaire.');
break;
case 'nuageuse':
print('A vos skis.');
break;
case 'pluvieuse':
print('Apportez un parapluie.');
break;
default:
print("Je ne connais pas ce temps.");
}
}
-
Regles à respecter
-
a + b > c
a + c > b
b + c > a
Solution
import 'dart:io';
double? saisirLongueurCote(String coteName) {
double? longueur;
bool saisieValide = false;
while (!saisieValide) {
stdout.write("Entrez la longueur du $coteName du triangle : ");
String longSaisie = stdin.readLineSync()!;
longueur = double.tryParse(longSaisie);
if (longueur != null) {
saisieValide = true;
} else {
print("Veuillez entrer un nombre valide.");
}
}
return longueur;
}
void main() {
double? cote1 = saisirLongueurCote("premier côté");
double? cote2 = saisirLongueurCote("deuxième côté");
double? cote3 = saisirLongueurCote("troisième côté");
if (estTriangle(cote1!, cote2!, cote3!)) {
// Le reste du code reste inchangé
if (cote1 == cote2 && cote2 == cote3) {
print("Le triangle est équilatéral.");
} else if (cote1 == cote2 || cote2 == cote3 || cote1 == cote3) {
print("Le triangle est isocèle.");
} else {
print("Le triangle est scalène.");
}
} else {
print("Les longueurs des côtés ne forment pas un triangle valide.");
}
}
bool estTriangle(double a, double b, double c) {
return (a + b > c) && (a + c > b) && (b + c > a);
}
Solution
Solution
import 'dart:io';
void main() {
stdout.write('Entrez le premier nombre : ');
double? nombre1 = double.tryParse(stdin.readLineSync() ?? '');
stdout.write('Entrez le deuxième nombre : ');
double? nombre2 = double.tryParse(stdin.readLineSync() ?? '');
if (nombre1 != null && nombre2 != null) {
double somme = nombre1 + nombre2;
double produit = nombre1 * nombre2;
double moyenne = (nombre1 + nombre2) / 2;
double soustraction = nombre1 - nombre2;
print('La somme est : $somme');
print('Le produit est : $produit');
print('La moyenne est : $moyenne');
print('La soustraction est : $soustraction');
} else {
print('Veuillez saisir des nombres valides.');
}
}
Solution