- if...else
- ?:
if...else
La structure conditionnelle permet d'influer sur le déroulement du script suivant...certaines
conditions!
Si vous connaissez un autre langage, vous reconaitrez le classique if et else.
if execute une instruction ou un bloc d'instruction si la condition est évaluée
à true.
Voici un exemple :
var age=18;
if(age >= 18)document.write('Vous êtes majeur');// Affiche 'Vous êtes majeur'
// si la variable age est
// supérieure à 18
Nous l'avons vu à la page précedente : l'opérateur >= renvoi true
si l'opérande de gauche est supérieur ou égale à l'opérande de droite.
C'est le cas ici, puisque la variable age est initialisée à 18. Le script affiche
donc Vous êtes majeur.
On peut d'ailleurs le vérifier simplement, en assigant une valeur inférieure à 18 à la variable
age :
var age=10;// 10 au lieu de 18
if(age >= 18)document.write('Vous êtes majeur');// Affiche 'Vous êtes majeur'
// si la variable age est
// supérieure à 18
Dans ce cas, rien est affiché.
Mais on peut executer une instruction alternative, au cas où la condition if n'est pas satisfaite.
On utilise else.
Nous pouvons donc completer notre programme ainsi :
var age=10;
if(age >= 18)document.write('Vous êtes majeur');// Si age <=18 ...
else document.write('Vous êtes mineur');// Sinon ...
Dans ce cas là, si la variable age est supérieure ou égale à 18, le script affiche
Vous êtes majeur. Sinon, il affiche Vous êtes mineur.
Si vous connaissez le QBasic, vous serez peut-être surpris d'apprendre qu'il n'y a pas de
ELSEIF.
On peut contourner l'obstacle en combinant un else et un if :
if(age < 18)document.write("Vous êtes trop jeune");
else if(age > 70)document.write("Vous êtes trop vieux");
else if(age < 0)document.write("Vous n'êtes pas encore né !");
else document.write("C'est bon");
Nous avons vu comment executer une instruction quand une condition est vraie. Mais si on avait
plusieurs instructions?
Au lieu de répeter plusieurs fois le même if, on peut utiliser ce qu'on appelle
un bloc d'instruction.
Un bloc d'instruction commence par un crochet (ou une accolade, comme vous voulez) : {, et
se termine par un...crochet (dans l'autre sens!) : }
Voici par exemple un bloc d'instruction :
// on commence le bloc d'instruction avec {
{
document.write("Cette ligne est comprise dans un bloc d'instructions");
document.write("Celle-ci aussi");
}
// on le termine avec }
Employé ainsi, ça n'a que peu d'intêret. Avec un if...else, ça en a un peu plus :
/*Horoscope du 3 au 9 juin 2001 de Christine Haas*/
var signe=prompt("Quel est votre signe astrologique en minuscules et sans accents");
var texte="";
if(signe=="belier"){
texte+="Après six mois de bons et loyaux services, Vénus (amours,<br>";
texte+="plaisirs) vous quitte ce mercredi pour entrer chez votre<br>";
texte+="voisin le Taureau. Pendant quelque temps, vous serez plus<br>";
texte+="possessif, plus jaloux, plus tendre aussi...<br>";
}
else if(signe=="taureau"){
texte+="Jeudi et vendredi seront les meilleures journées de la semaine,<br>";
texte+="surtout si vous êtes né en avril. Vous vous sentirez en<br>";
texte+="harmonie avec le monde et avec ceux que vous aimez. Une<br>";
texte+="surprise agréable est au menu.<br>";
}
else if(signe=="gemeaux"){
texte+="Né fin mai : Saturne (freins, limites) est sur votre Soleil<br>";
texte+="et vous le sentirez davantage entre lundi et mardi. Vous<br>";
texte+="aurez probablement un sentiment de solitude, ou une conscience<br>";
texte+="accrue des dures réalités de la vie.<br>";
}
else if(signe=="cancer"){
texte+="Venus (amours, plaisirs) entre mercredi dans un signe en<br>";
texte+="harmonie avec le vôtre. Pendant pluseurs semaines, sachez<br>";
texte+="mettre du piment dans votre vie quotidienne. Sortez de la<br>";
texte+="routine et vos amours seront flamboyantes!<br>";
}
else if(signe=="lion"){
texte+="Lundi et mardi seront positifs pour vos amours, mais par la<br>";
texte+="suite Vénus rentrera dans le secteur attribué à la carrière<br>";
texte+="professionnelle, ce qui signifie que l'amour passera au second<br>";
texte+="plan pour beaucoup d'entre vous.<br>";
}
else if(signe=="vierge"){
texte+="Lundi et mardi ne seront pas les meilleurs jours de cette<br>";
texte+="semaine. Soit vous vous sentirez seul ou mal entouré, soit<br>";
texte+="vous remâcherez de sombres idées. Ne tombez pas dans votre<br>";
texte+="piège habituel : douter de vous-même.<br>";
}
else if(signe=="balance"){
texte+="Né autour du 14 octobre : vous pourrier avoir de belles<br>";
texte+="opportunités à saisir dans les jours qui viennent, car le<br>";
texte+="Soleil et Jupiter (chances) vont se donner la main pour élargir<br>";
texte+="votre horizon professionnel ou affectif.<br>";
}
else if(signe=="scorpion"){
texte+="Vénus (amours) change de signe mercredi et se trouvera face au<br>";
texte+="vôtre. Si vous êtes né en octobre, vous serez les premiers à<br>";
texte+="bénéficier de sa nouvelle position : rencontres, invitations et<br>";
texte+="offres seront au rendez-vous.<br>";
}
else if(signe=="sagittaire"){
texte+="Ça bouge aussi côté cœur, puisque Vénus change de signe<br>";
texte+="mercredi. Elle occupera votre secteur du travail, ce qui n'est<br>";
texte+="guère passionnant pour vos amours. Elles s'enliseront un peu<br>";
texte+="dans le quotidien.<br>";
}
else if(signe=="capricorne"){
texte+="C'est le moment de faire le ménage dans vos amours, de les<br>";
texte+="sortir du placard où vous les aviez rangées depuis février,<br>";
texte+="et de faire revivre leurs jolies couleurs. Vous en aurez<br>";
texte+="l'opportunité jeudi et vendredi.<br>";
}
else if(signe=="verseau"){
texte+="Vénus (amours, plaisirs) rentre mercredi dans votre secteur de<br>";
texte+="la famille et de la maison. Une occasion d'être plus <br>";
texte+="démonstratif envers ceux que vous aimez, et de faire des achats<br>";
texte+="pour agrémenter votre décor.<br>";
}
else if(signe=="poissons"){
texte+="Fort heureusement, Vénus (amours, bien-être) vient à votre<br>";
texte+="secours, surtout si vous êtes né en février. Elle occupera un<br>";
texte+="signe ami à partir de mercredi : vous aurez un soutien tendre<br>";
texte+="de votre entourage.<br>";
}
else{
texte+="heu...";
}
document.write(texte);
Ne vous préoccupez pas de l'instruction prompt, sur la première ligne. Nous l'étudierons
plus loin.
Cette exemple affiche l'horoscope, suivant la variable signe. Peut importe l'utilité
ou l'interet d'un tel script : c'est juste pour l'exemple...
? :
Si vous pratiquez le Visual Basic, vous connaissez certainement l'instruction IIF.
?: se comporte exactement de la même façon. Il prend trois arguments :
- Le premier est une condition
- Le deuxième est la valeur à renvoyer si la condition est true
- Le troisième est la valeur à renvoyer si la condition est false
Voici un exemple :
var nombre=5;
var etat = (nombre % 2 == 0 ? "paire" : "impaire");
// CONDITION ? SI VRAI : SI FAUX
document.write("Le nombre " + nombre + " un est nombre " + etat);
|