Exercice 10/15

Soit la variable number déjà déclarée et qui contient une valeur aléatoire entre -10 et 10.

Dans le fichier "script.js" :

  • écrivez une structure if, else if, else;
  • vérifiez si number et strictement positif;
  • si c'est le cas affichez "C'est positif" avec alert();;
  • vérifiez si number est négatif;
  • si c'est le cas affichez "C'est négatif" avec alert();
  • si les deux conditions ne sont pas vérifiées, affichez "C'est zéro" avec alert();;
  • cliquez sur "Soumettre ma réponse".

Leçon 10/15

Vous savez utiliser une structure if et else pour tester si une condition est vérifiée ou pas. Il est aussi possible de tester plusieurs conditions les unes après les autres en procédant ainsi :

  • la première condition est testée avec if;
  • une deuxième condition est testée si la précédente n'est pas vérifiée avec else if;
  • d'autres conditions peuvent être testées en ajoutant autant de else if;
  • enfin, si aucune des conditions précédentes n'est vérifiée, la structure else exécute le code souhaité;

La structure elseif (sinon si)

Avec else if il est donc possible de tester plusieurs conditions à la fois:

if (condition1)
{
    // Code exécuté si "condition1" est vérifié
}
else if (condition2)
{
    // Code exécuté si "condition1" n'est pas vérifié...
    // ... et si "condition2" est vérifiée
}
else if (condition3)
{
    // Code exécuté si "condition2" n'est pas vérifée...
    // ... et si "condition3" est vérifiée
}
... // Ainsi de suite
else
{
    // Si aucune des conditions n'est vérifiée alors le code ici est exécuté
}

Une structure conditionnelle doit rester lisible, surtout quand elle devient complexe, aussi il est fortement conseillé de l'écrire comme ceci :

if ()
{
    // Votre code ici
}
else if ()
{
    // Votre code ici
}
else
{
    // Votre code ici
}
  • un espace entre le if ou elseif et les parenthèses ();
  • allez à la ligne pour ouvrir les accolades {;
  • indentez le code entre les accolades avec une tabulation pour bien voir la hiérarchie;
  • allez à la ligne pour fermer les accolades;
  • les 2 accolades doivent être alignées, ainsi vous verrez plus facilement si il y a un oubli et à quel niveau;
  • le elsei doit se trouver entre le if et le else;

Cet exemple est une très bonne façon d'écrire des conditions et dans cet exercice vous devez utiliser ce modèle.

Commentaires les mieux notés

  • romainf388

    Je ne comprends pas mon erreur ...

  • mickaelquintin

    Je pense que c'est bon mais voici le message qui s'affiche"AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE IF, ELSE IF, ELSE, EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

  • mram Administrateur

    Il y a un espace après le "else" (ligne 9) ...

  • dzmadrak

    if (number >= 0) { alert("C'est positif"); } else if (number < 0) { alert( "C'est négatif"); } else { alert("C'est zéro"); } Bonsoir il me dit de respecter la syntaxe de l'astuce

65 Commentaires

  • romainf388

    romainf388

    Je ne comprends pas mon erreur ...

    le 11/01/2018 à 18h33

  • mram

    mram Administrateur

    Bonjour, il faut mettre "else if" en deux mots.

    le 12/01/2018 à 02h44

  • mram

    mram Administrateur

    Et quand on utilise "else" il n'y a rien à mettre après contrairement à "if" et "else if" .

    le 12/01/2018 à 02h45

  • mickaelquintin

    mickaelquintin

    Je pense que c'est bon mais voici le message qui s'affiche"AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE IF, ELSE IF, ELSE, EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

    le 23/11/2016 à 18h36

  • mram

    mram Administrateur

    Il y a un espace après le "else" (ligne 9) ...

    le 02/08/2016 à 23h44

  • dzmadrak

    dzmadrak

    if (number >= 0) { alert("C'est positif"); } else if (number < 0) { alert( "C'est négatif"); } else { alert("C'est zéro"); } Bonsoir il me dit de respecter la syntaxe de l'astuce

    le 06/02/2017 à 01h28

  • mram

    mram Administrateur

    Supprimez la ligne 13 qui est vide, ça pourrait venir de là...

    le 06/02/2017 à 01h40

  • mram

    mram Administrateur

    Essayez en mettant des espaces autour des signes ">" et "<".

    le 24/11/2016 à 17h38

  • v.redois

    v.redois

    "Avez-vous bien écrit la structure if elseif else en utilisant la syntaxe de l'astuce ?" Oui. (ne fonctionne absolument pas sans espace entre 'else' et 'if' --> 'else if' et non 'elseif')

    le 19/05/2016 à 23h40

  • bsmeyers84

    bsmeyers84

    Je pense que c'est bon mais voici le message qui s'affiche"AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE IF, ELSE IF, ELSE, EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

    le 02/08/2016 à 17h33

  • wittmann.patty

    wittmann.patty

    J'arrive pas a valider il met : "syntaxerror: unexpected token else"

    le 09/08/2016 à 15h51

  • mram

    mram Administrateur

    Même remarque que pour l'exercice précédent (espace à la fin de la ligne du "if"). Sinon, c'est bien "else if" qu'il faut mettre comme indiqué dans l'astuce. J'ai mis à jour l'énoncé (remplacement de "elseif" par "else if") pour que ce soit plus clair.

    le 19/05/2016 à 23h40

  • v.redois

    v.redois

    Ca fonctionne. Merci.

    le 20/05/2016 à 10h43

  • lucswim

    lucswim

    Je ne comprends pas mon erreur. if (number > 0) { alert("C'est positif"); } else if (number < 0) { alert("C'est négatif"); } else { alert("C'est zéro"); }

    le 06/03/2017 à 16h36

  • jason.dallmer

    jason.dallmer

    Bonsoir j'ai vérifié et re-vérifié mon code et j'ai supprimé tous les espaces en principe, mon erreur m'échappe pourriez-vous me l'indiquer svp ?

    le 30/03/2017 à 21h05

  • mram

    mram Administrateur

    J'ai testé votre code et j'ai pu valider l'exercice. Donc votre code est correct.

    le 01/04/2017 à 11h31

  • <h1>Colombe</h1>

    <h1>Colombe</h1>

    if (number >= 0) { alert("C'est positif"); } else if (number < 0) { alert( "C'est négatif"); } else { alert("C'est zéro"); } mon code ne marche pas

    le 09/02/2017 à 11h58

  • mram

    mram Administrateur

    Lignes 1 et 5, il ne faut pas de ; à la fin ...

    le 16/08/2016 à 10h29

  • <h1>Colombe</h1>

    <h1>Colombe</h1>

    pourquoi?

    le 09/02/2017 à 12h01

  • mram

    mram Administrateur

    Un espace en trop à la fin de la ligne 9 je pense...

    le 09/03/2017 à 00h54

  • enzo44200

    enzo44200

    Aidez moi SVP merci , je bloque à la ligne 7 et 13 merci Mram

    le 01/12/2016 à 22h09

  • enzo44200

    enzo44200

    Aidez moi svp SYNTAXE ERROR else if et else pour tant ils sont bien écris

    le 02/12/2016 à 09h20

  • enzo44200

    enzo44200

    Dans votre astuce vous mentionnez ceci : le elsei doit se trouver entre le if et le else; et dans votre titre du cours et ceci : 9. La structure elseif et plus loin il y a ça : La structure elseif (sinon si) + ça :Avec else if il est donc possible de tester plusieurs conditions à la fois:? Question : comment doit on l'écrire ??

    le 02/12/2016 à 09h30

  • mram

    mram Administrateur

    Ligne 9 il y a un espace en trop après "else".

    le 14/02/2017 à 00h56

  • mram

    mram Administrateur

    Votre structure if / else if est correcte. Par contre quand on utilise "else" il n'y 'a rien à vérifier derrière. Donc il faut juste mettre "else" puis le code a exécuter entre accolade. Regardez bien l'astuce : il n'y a pas de parenthèses () après le "else". Et n'oubliez pas de remettre tous les alert() dans les accolades, à la place de vos commentaires.

    le 02/12/2016 à 13h56

  • bretel.val

    bretel.val

    J'ai utilisé l'astuce et vérifié si il n'y avait pas d'espaces supplémentaires mais l'on me demande si j'ai bien utilisé la structure if ,else if, else.

    le 08/04/2017 à 14h52

  • danderhy3

    danderhy3

    désolé mais je ne comprends pas mon erreur please help me

    le 08/05/2017 à 22h03

  • mram

    mram Administrateur

    Idem, ajoutez un espace après le "if" lignes 1 et 5.

    le 11/04/2017 à 16h03

  • adeline.lemoussu

    adeline.lemoussu

    Bonjour je n'arrive pas trouver mon erreur : if (0 < number && number <= 10) { alert("C'est positif"); } else if (0 > number && number <= -10) { alert("C'est négatif"); } else { alert("C'est zéro"); }

    le 08/12/2016 à 10h04

  • ajkabs2

    ajkabs2

    if (number > 0) { alert("c'est positif"); } else if (number < 0) { alert("c'est négatif"); } else { alert("c'est zéro"); } je comprends pas mon code il ne passe pas

    le 21/02/2017 à 20h46

  • mram

    mram Administrateur

    Lignes 3, 7 et 11 il y a des espaces en trop en fin de ligne...

    le 22/02/2017 à 00h38

  • mram

    mram Administrateur

    Vos conditions lignes 5 et 10 sont incorrectes. Il faut juste vérifier si 0 est positif dans le 1er cas, et négatif dans le second cas.

    le 09/12/2016 à 22h46

  • mram

    mram Administrateur

    Il faut juste ajouter une tabulation aux lignes 3 , 7 et 11.

    le 15/05/2017 à 13h07

  • karen.lerohellec

    karen.lerohellec

    Bonsoir, je ne comprends mon erreur : if ( number > 0) { alert("C'est positif"); } else if (number < 0) { alert("C'est négatif"); } else { alert("C'est zéro"); } Message : AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE IF, ELSE IF, ELSE, EN UTILISANT LA SYNTAXE DE L'ASTUCE ?

    le 23/03/2017 à 00h06

  • mram

    mram Administrateur

    Essayez en supprimant les espaces devant "number" et après "0" à la ligne 1.

    le 24/03/2017 à 10h42

  • loredane.avrillier-6

    loredane.avrillier-6

    Bonjour, pourriez-vous m'indiquer précisément mon erreur s'il vous plaît? Le message d'erreur me parle de syntaxe mais j'ai suivi l'astuce à la lettre. Merci par avance

    le 29/04/2018 à 14h32

  • mram

    mram Administrateur

    Bonjour, il y a des espaces inutiles après "else".

    le 04/05/2018 à 06h46

  • djalloh2016-72

    djalloh2016-72

    Bonjour tout le monde vous demandez des help cherchez d'abord cherchez ,cherchez et encore une fois cherchez n'oubliez pas un développeur est celui qui cherche sans relache,il un exo dans cette partie qui m'a pris 2 jours mais au final j'y suis arrivée sans l'aide de rien juste en regardant bien le code,,cet exo ce qui vous fait galérer c'est anti slah que vous oubliez \ dans le code à exécuter dans les alert("C'\est positif); ça galère pour tout le monde...c'est merveilleux le dev

    le 26/02/2018 à 18h26

  • mram

    mram Administrateur

    Oui c'est un bon point de vue :)

    le 01/03/2018 à 22h59

  • martinvu.pro

    martinvu.pro

    mram Administrateur Bonjour, il y a un espace inutile avant "if" , "else" , "else if" , Bonjour suite a votre réponse , je n'ai pas mis d'espace avant if , ni else if ni else, :/

    le 17/01/2018 à 23h51

  • mram

    mram Administrateur

    Bonjour, oui mais il reste quelques ajustements à faire. Il faut une tabulation égale à 4 espaces à l'intérieur des accolades et un espace après les "if".

    le 19/01/2018 à 16h34

  • extan

    extan

    Bonsoir, erreur de syntaxe apparemment comme pas mal d'autres... un peu d'aide SVP! merci

    le 19/07/2017 à 21h19

  • mram

    mram Administrateur

    Vous pouvez faire plus simple : vérifier si c'est strictement supérieur ou inférieur à zéro. Pas besoin de 0.1 ... Et il y a un espace en trop après le dernier "else" .

    le 23/07/2017 à 16h12

  • philgd28

    philgd28

    Bonjour, mon code me semble bon, mais j'ai ce message : "AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE IF, ELSE IF, ELSE, EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

    le 22/07/2017 à 09h56

  • mram

    mram Administrateur

    Bonjour, il ne faut pas de lignes vides...

    le 23/07/2017 à 16h46

  • merick.pocrain

    merick.pocrain

    Pourquoi je n'arrive pas à valider mn excercice j'ai verifié et cela me semble correcte. Si c'est encore un fois une histoire d'espace, il faudra m'expliquer comment les utiliser.

    le 12/10/2017 à 20h28

  • mram

    mram Administrateur

    Bonjour, à la fin des lignes où il y a alert() vous avez des espaces inutiles ...

    le 18/10/2017 à 23h09

  • lienmontage

    lienmontage

    alert ( Ah l'aide s'il vous plait, je ne trouve pas mon erreur !! )

    le 27/02/2018 à 17h58

  • mram

    mram Administrateur

    Bonjour, le code dans les accolades doit être indenté.

    le 01/03/2018 à 23h23

  • peevflorin-1

    peevflorin-1

    Bonjour j'ai vérifié mon code et l'erreur m'échappe. Pourriez-vous m'aider svp?

    le 31/01/2018 à 11h58

  • mram

    mram Administrateur

    Bonjour, les accolades { doivent être à la ligne.

    le 05/02/2018 à 10h49

  • fahad.abdillah

    fahad.abdillah

    je ne comprends pas où est mon erreur

    le 31/10/2017 à 19h22

  • mram

    mram Administrateur

    Bonjour, il y a juste un espace inutile après le "else".

    le 31/10/2017 à 23h56

  • martinvu.pro

    martinvu.pro

    Bonjour je ne vois pas ou est mon erreur merci

    le 05/01/2018 à 00h25

  • mram

    mram Administrateur

    Bonjour, il y a un espace inutile avant "if" , "else" , "else if"

    le 07/01/2018 à 01h59

  • coheneytan

    coheneytan

    Pourriez vous m'aider s'il vous plait?

    le 02/10/2017 à 10h03

  • mram

    mram Administrateur

    Bonjour, il y a un espace en trop après "else if".

    le 03/10/2017 à 21h58

  • valerie.cohen0-81

    valerie.cohen0-81

    bonjour, ou est mon erreur ? if (number > 0) { alert("C'est positif"); } else if (number < 0) {alert("C'est négatif"); } else { alert("C'est zéro");}

    le 05/04/2018 à 18h50

  • mram

    mram Administrateur

    Bonjour, attention à l'indentation du code dans les accolades, il manque une tabulation.

    le 09/04/2018 à 18h37

  • alexismoquet

    alexismoquet

    je ne comprends pas mon erreur

    le 25/09/2017 à 13h55

  • mram

    mram Administrateur

    Bonjour, vous avez des espaces inutiles en fin de première ligne. Et les "\" dans le texte sont inutiles aussi.

    le 29/09/2017 à 00h28

  • alexismoquet

    alexismoquet

    Bjr, mon code est-il correct ?

    le 05/10/2017 à 09h42

  • mram

    mram Administrateur

    Bonjour, il n'y a pas besoin de mettre des anti-slash dans le texte. Sinon le reste du code semble correct.

    le 09/10/2017 à 00h22

  • akram.guerrab-9

    akram.guerrab-9

    if (number > 0) { alert("C\'est positif"); } else if (number < 0) { alert("C\'est négatif"); } else { alert("C\'est zéro"); } j ai chercher je ne vois tou jour pa

    le 26/03/2018 à 19h52

  • mram

    mram Administrateur

    Bonjour, attention aux espaces inutiles en fin de ligne. Le code lui-même est correct.

    le 30/03/2018 à 01h52

  • tomcardon35

    tomcardon35

    bonjour quelle est mon erreur ?

    le 15/12/2017 à 23h21

  • mram

    mram Administrateur

    Bonjour, juste des espaces inutiles en fin de ligne après le "else".

    le 23/12/2017 à 12h20

  • tonycour85-29

    tonycour85-29

    if (0 < number) { alert("C'est positif"); } else if (0 > number) { alert("C'est négatif"); } else { alert("C'est zéro"); } quelqu'un peut il m'aide svp je bug sur cette exo

    le 13/01/2018 à 20h02

  • mram

    mram Administrateur

    Bonjour, vous avez des espaces inutiles après "else".

    le 16/01/2018 à 20h02

  • diminga_mendy

    diminga_mendy

    Bonjour, voici mon code : if(number > 0) {alert("C'est positif");} else if(number < 0) {alert("C'est négatif"); } else {alert("C'est zéro");}

    le 19/09/2017 à 20h46

  • mram

    mram Administrateur

    Bonjour, ajoutez un espace après les "if".

    le 20/09/2017 à 15h53

  • kiatong

    kiatong

    Bonsoir, j'ai tout tester et je pense que mon code est juste, je passe quand même a l'exercice suivant. voici mon code if (number > 0) { alert("C'est positif"); } else if (number < 0) { alert("C'est négatif"); } else { alert("C'est zéro"); }

    le 07/01/2018 à 21h25

  • mram

    mram Administrateur

    Bonjour, il y a un espace en trop après "else".

    le 12/01/2018 à 01h28

  • lolululo-22

    lolululo-22

    Bonjour, je ne comprends pas mon erreur. if (nomber > 0) {alert("C'est positif"); } else if (nomber < 0) {alert("C'est négatif"); } else {alert("C'est zéro"); }. Quand je clique sur soumettre, il m'affiche "nomber is not defined".

    le 05/06/2018 à 10h31

  • lolululo-22

    lolululo-22

    C'est bon, j'ai trouvé l'erreur. Merci

    le 05/06/2018 à 10h41

  • rachid

    rachid

    Bonjour voici la solution pour ceux qui galere. N'oubliez pas a certains endroit les espaces. if (number > 0 ) { alert("C'est positif"); } else if (number < 0) { alert("Cest négatif"); } else { alert("C'est zéro"); }

    le 03/12/2017 à 12h26

  • lepennecsolen

    lepennecsolen

    bonjour d'ou vient mon probleme pour moi ma structure aller bonne j'ai essayer avec et sans espaces sa me dit la meme choses avez vous bien utiliser la structure if ,else if, else

    le 27/01/2018 à 03h03

  • mram

    mram Administrateur

    Bonjour, l'indentation est à revoir. Le "else if" est bien écrit, le "if" et le "else" doivent être écrit de la même manière.

    le 30/01/2018 à 18h34

  • merick.pocrain

    merick.pocrain

    Aidez moi!!!!Please!!

    le 09/10/2017 à 18h03

  • mram

    mram Administrateur

    Bonjour, lignes 1 et 5 il faut mettre la variable "number" et non "varnumber" .

    le 12/10/2017 à 16h03

  • m.benamara94

    m.benamara94

    Je ne comprends pas mon erreur HELP voici mon code : if (number > 0) { alert("C'est positif"); } else if (number < 0) { alert("C'est négatif"); } else { alert("C'est zéro"); }

    le 21/12/2017 à 22h54

  • mram

    mram Administrateur

    Bonjour, attention à l'indentation à l'intérieur des accolades.

    le 23/12/2017 à 17h16

  • sofianemeziani15-46

    sofianemeziani15-46

    if (number > 0 ) { alert("C'est positif"); } else if (number < 0) { alert("Cest négatif"); } else { alert("C'est zéro"); }, pour moi aucune erreur dans mon code mais ça ne fonction pas ??????pourquoi???? j'ai bien respecté les espaces et tout...

    le 16/01/2018 à 22h09

  • mram

    mram Administrateur

    Bonjour, pas de souci au niveau du code en effet, mais vous aviez oublié une apostrophe dans une des phrases.

    le 19/01/2018 à 16h06

  • Lolisicat

    Lolisicat

    Bonjour, pourquoi number n'est pas entre " ? Ce n'est pas un "string" en 'écrivant ainsi ?

    le 11/10/2017 à 15h40

  • mram

    mram Administrateur

    number est le nom de la variable. Si on écrit "number" , pour Javascript c'est juste du texte, on aurait mis "toto" ça serait pareil.

    le 12/10/2017 à 16h28

  • rondeau.yann

    rondeau.yann

    Unexpected token var, je ne comprends pas

    le 30/03/2018 à 14h57

  • mram

    mram Administrateur

    Bonjour, et bien ça veut dire qu'il ne faut pas mettre le mot-clé var là où vous l'aviez mis.

    le 01/04/2018 à 02h46

  • Babeloued

    Babeloued

    Merci

    le 26/11/2018 à 18h18

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>La structure elseif</title> <script src="script.js"></script> </head> <body> </body> </html>
/* Pas besoin de modifier la variable number */ var number = Math.floor((Math.random() * 21) - 10); /* Vos conditions ici */