Conditionnement des traitements
Présentation de la syntaxe
La structure conditionnelle en JavaScript est très proche syntaxiquement de celle vue précédemment en langage descriptif algorithmique.
Tout à fait classiquement le bloc d’instructions à exécuter dans le cas où la condition testée est vraie est délimité par un jeu d’accolades ({}). Il est aussi possible de prévoir une séquence d’instructions alternative avec le mot-clé else. Cette séquence sera aussi encadrée par des accolades.
Le langage JavaScript est assez permissif quant au positionnement de ces accolades. Ainsi vous rencontrerez dans les scripts les constructions suivantes :
if (condition)
{
Actions_1;
}
else
{
Actions_2;
}
ou
if (condition) {
Actions_1;
}
else {
Actions_2;
}
ou
if (condition) { Actions_1; } else { Actions_2; }
avec :
-
condition représentant un test de comparaison générant un résultat booléen true ou false,
-
Actions_1 et Actions_2 représentant des séquences d’instructions (en général réparties sur plusieurs lignes).
Attention pour effectuer un test de comparaison...
Exemples
Pour faciliter le repérage des exercices JavaScript, la numérotation vue dans le chapitre Développement à partir d’algorithmes sera conservée.
1. Exercice n°6 : Polynôme du second degré
Sujet
Calculer les racines d’un polynôme du second degré Ax2+Bx+C (avec A<>0 dans l’absolu mais ce test ne sera pas effectué ici). Les valeurs A, B et C seront saisies au clavier.
Corrigé (partiel) en JavaScript
/* Saisie des paramètres */
a = prompt("a :");
b = prompt("b :");
c = prompt("c :");
/* Calcul du discriminant */
delta = (parseInt(b) * parseInt(b)) - (4 * parseInt(a) * parseInt(c));
/* Affichage des paramètres */
document.write("a : " + a + "<br />");
document.write("b : " + b + "<br />");
document.write("c : " + c + "<br />");
document.write("Discriminant delta : " + delta + "<br />");
/* Détermination des racines */
if (delta < 0)
{
document.write("Pas de solutions");
}
else
{
if (delta == 0)
{
document.write("Solution unique : " + (-b / (2 * a)));
}
else
{
document.write("Solution n°1 : " + (-b + Math.sqrt(delta)) /
(2 * a) + "<br />");
document.write("Solution n°2 : " + (-b - Math.sqrt(delta)) /
(2 * a));
}
}
Commentaires...