Exercice 11/15

Soit la variable number déjà déclarée et qui contient une valeur aléatoire qui peut-être 0, 1, 2, 3, 4 ou 5.

Dans le fichier "script.js" :

  • écrivez une structure switch;
  • vérifiez les cas possibles d'égalité de 1 à 5;
  • pour chaque cas, si il est vérifié, écrivez un alert(); qui affichera la valeur de number;
  • si les cas de 1 à 5 ne sont pas vérifiés, écrivez alert(); qui concatènera "La valeur est forcément zéro : " et la valeur de number;
  • cliquez sur "Soumettre ma réponse".

Leçon 11/15

Vous venez de voir la première structure conditionnelle if elseif else.

Dans l'exercice précédent vous avez testé si number était positif, négatif ou égale à zéro. Imaginez une situation dans laquelle vous devez tester toutes les possibilités pour cette même variable number.

Il va falloir vérifier si number est égale à -10, -9, -8 ... jusqu'à 10. Avec une structure de type if elseif else, le code devient vite lourd et pas forcément lisible.

C'est là qu'intervient la structure switch :

switch (maVariable)
{
    case valeur1:instruction1;
    break;
    case valeur2:instruction2;
    break;
    case valeur3:instruction3;
    break;
    default:instruction4;
}

Comment ça marche ?

  • il faut le mot-clé switch suivi de la variable à tester entre parenthèses ();
  • ensuite tout se passe entre une seule paire d'accolades {};
  • chaque possibilité est testée avec le mot-clé case suivi de la valeur à laquelle doit être comparée maVariable;
  • attention, case vérifie uniquement si maVariable est égale à la valeur spécifiée (ici valeur1, valeur2, valeur3) et rien d'autre;
  • si l'égalité est vérifiée, alors l'instruction qui suit le double-point : est exécutée;
  • pour chaque case il faut un break qui permet d'arrêter le switch si l'égalité est vérifiée car pas besoin d'aller plus loin;
  • si aucun des case n'est vérifié, alors on exécute l'instruction par défaut avec le mot-clé default;

Remarque :

Avec case c'est une égalité stricte === qui est testée, c'est-à-dire que le contenu et le type de maVariable doivent être identique soit à valeur1 ou valeur2 ou valeur3.

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

switch ()
{
    case valeur:instruction1;
    break;
    case valeur:instruction2;
    break; 
    default:instruction3;
}
  • un espace entre le switch 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;
  • une espace entre le case et la valeur suivie immédiatement par : puis l'instruction;
  • n'oubliez pas les ; en fin de ligne;

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

Commentaires les mieux notés

  • stephanie.rouby

    Bonsoir, j'ai le message suivant : Erreur(s) : script.js : "SyntaxError: Unexpected identifier" ligne 3 colonne 5 pouvez-vous me dire où est mon erreur svp ?

  • alexismoquet

    bjr, porriez-vous me dir es('il y a une erreur ? merci

  • mram Administrateur

    Pour les 5 premiers cas, on demande juste d'afficher la valeur avec alert() en utilisant la variable correspondante, pas besoin du texte ''la variable est égale à'

  • dzmadrak

    switch(number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro : " + number); break; } Bonsoir merci pour votre aide a la question precedente mais la aussi je bute toujours ce probleme de syntaxe

140 Commentaires

  • stephanie.rouby

    stephanie.rouby

    Bonsoir, j'ai le message suivant : Erreur(s) : script.js : "SyntaxError: Unexpected identifier" ligne 3 colonne 5 pouvez-vous me dire où est mon erreur svp ?

    le 27/11/2017 à 18h12

  • mram

    mram Administrateur

    Bonjour, vous écrivez mal la structure. "case1" "case2" ... n'existent pas. Le mot-clé c'est juste "case".

    le 28/11/2017 à 14h24

  • alexismoquet

    alexismoquet

    bjr, porriez-vous me dir es('il y a une erreur ? merci

    le 02/10/2017 à 13h05

  • mram

    mram Administrateur

    Bonjour, oui la moitié des lignes est mal indentée (break et default).

    le 03/10/2017 à 22h08

  • mram

    mram Administrateur

    Pour les 5 premiers cas, on demande juste d'afficher la valeur avec alert() en utilisant la variable correspondante, pas besoin du texte ''la variable est égale à'

    le 19/10/2016 à 11h02

  • dzmadrak

    dzmadrak

    switch(number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro : " + number); break; } Bonsoir merci pour votre aide a la question precedente mais la aussi je bute toujours ce probleme de syntaxe

    le 06/02/2017 à 02h16

  • mram

    mram Administrateur

    Ligne 13, il y a à priori un espace inutile au début de la phrase.

    le 28/03/2017 à 01h28

  • youssefattia

    youssefattia

    Bonjour, Impossible de valider lexercice erreur :"AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ?" switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); default:alert("La valeur est forcément zéro"); }

    le 04/03/2017 à 16h29

  • mram

    mram Administrateur

    Ligne 12, il faut concaténer la variable "number" avec le message qu'on souhaite afficher.

    le 05/03/2017 à 11h24

  • mram

    mram Administrateur

    Essayez sans l'espace après les doubles-points ":"

    le 24/11/2016 à 17h51

  • youssefattia

    youssefattia

    Voici la modif et toujours la meme erreur: default:alert("La valeur est forcément zéro :" + number);

    le 05/03/2017 à 18h19

  • dzmadrak

    dzmadrak

    ok merci !

    le 06/02/2017 à 19h38

  • yacine

    yacine

    Bonsoir je ne comprend pas mon erreur.

    le 16/01/2017 à 22h46

  • aminehadef

    aminehadef

    switch (number) { case 1:number; alert(number); break; case 2:number; alert(number); break; case 3:number; alert(number); break; case 4:number; alert(number); break; case 5:number; alert(number); break; default: alert("La valeur est forcément zéro"); } AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ? Bonjour je ne vois pas mon erreur de syntaxe pouvez-vous m'aidée s'il vous plait

    le 16/12/2016 à 20h32

  • aminehadef

    aminehadef

    merci c'est bon j'ai trouvé tout seule

    le 17/12/2016 à 19h16

  • v.redois

    v.redois

    AVEZ-VOUS BIEN AFFICHÉ LA VALEUR DEMANDÉE AVEC ALERT() POUR CHAQUE CAS ? (pardon pour les majuscules, j'ai juste fait un copier-coller) Je suppose que c'est le même problème qu'auparavant, je le signale juste pour info.

    le 22/05/2016 à 13h12

  • francois.dreux

    francois.dreux

    Bonjour, j'ai l'impression de n'avoir aucune erreur, et pourtant j'ai toujours le message "AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ?" - Pouvez-vous me dire ce qui pose problème ? Merci

    le 30/03/2017 à 16h07

  • mram

    mram Administrateur

    Bonjour, en effet il y a un souci dès qu'on vérifie ce qui est fait avec alert(), confirm() et prompt(). Cela est à priori du à une mise à jour de la plateforme car les exercices fonctionnaient bien auparavant. On s'en occupe. Merci.

    le 22/05/2016 à 13h12

  • mram

    mram Administrateur

    Ligne 13, le texte écrit n'est pas exactement le même, il faut un espace après "zéro" je pense.

    le 17/01/2017 à 22h02

  • mram

    mram Administrateur

    J'ai testé votre code et il fonctionne bien de mon côté...

    le 01/04/2017 à 11h29

  • mram

    mram Administrateur

    Il manque un espace après les ":"

    le 09/03/2017 à 00h41

  • kabalojonas44

    kabalojonas44

    Hello, je ne vois pas mon erreur, can i have some help?

    le 22/12/2016 à 14h18

  • Fernanth

    Fernanth

    Bonjour, je ne trouve pas mon erreur...

    le 24/01/2017 à 11h09

  • adg-deprez

    adg-deprez

    Bonjour, ça fait plusieurs fois que j'efface et que je réécris mon code. Mais à la fin il me demande toujours si j'ai bien utilisé switch selon l'astuce. Pouvez-vous me dire mon erreur? Merci beaucoup

    le 10/03/2017 à 10h11

  • kabalojonas44

    kabalojonas44

    c'est bon merci

    le 25/12/2016 à 16h17

  • mram

    mram Administrateur

    Mettez les "break" à la ligne. Sinon le code est bon.

    le 14/03/2017 à 00h36

  • mram

    mram Administrateur

    J'ai testé votre code (qui est correct), et il fonctionne sans erreur.

    le 27/01/2017 à 15h37

  • debora.arjona

    debora.arjona

    Je ne trouve pas l'erreur: switch (number) { case 1: alert(number); break; case 2: alert(number); break; case 3: alert(number); break; case 4: alert(number); break; case 5: alert(number); break; default: alert("La valeur est forcément zéro :" + number); }

    le 01/01/2017 à 16h19

  • bretel.val

    bretel.val

    Bonjour, on me demande si j'ai bien utilisé la syntaxe de l'astuce alors que je ne vois pas d'erreur dans mon code.

    le 08/04/2017 à 15h43

  • sofiane.tati

    sofiane.tati

    "Avez-vous bien écri la structure switch en respectant la syntaxe de l'astuce ?" Il doit me manquer un espace ou quelquechose comme ça ?

    le 05/06/2016 à 12h38

  • mram

    mram Administrateur

    C'est possible, si il y a des espaces ou tabulations avant le mot "switch" ou les accolades, supprimez-les.

    le 05/06/2016 à 14h20

  • danderhy3

    danderhy3

    bonjour je ne comprends pas mon erreur pourriez vous m'aider svp

    le 09/05/2017 à 12h25

  • mram

    mram Administrateur

    Ligne 3, il y a un espace invisible en fin de ligne alors qu'on attend directement un retour à la ligne. Si non le code est correct.

    le 02/01/2017 à 14h53

  • mram

    mram Administrateur

    Idem, ajoutez un espace après le "switch" ligne 1.

    le 11/04/2017 à 16h04

  • antho.lau

    antho.lau

    Vous pouvez me donner mon erreur ? J'ai testé toutes les solutions différentes. "AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

    le 29/01/2017 à 20h03

  • Trov

    Trov

    Bonjour, je ne vois pas bien où est mon erreur, j'ai le message AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ? mais pas moyen de trouver mon erreur...

    le 28/09/2016 à 10h29

  • mram

    mram Administrateur

    Il faut mettre les "break" à la ligne.

    le 15/05/2017 à 13h10

  • mram

    mram Administrateur

    J'ai testé votre code et il fonctionne, il n'y a pas d'erreur dans votre code. J'ai pu valider l'exercice avec.

    le 31/01/2017 à 14h50

  • ngrange

    ngrange

    "Avez-vous bien écrit la structure switch en respectant la syntaxe de l'astuce ?" Je ne vois pas la différence

    le 26/08/2016 à 17h40

  • mram

    mram Administrateur

    Ligne 13, il ne faut pas juste mettre du texte ...

    le 01/10/2016 à 13h49

  • mram

    mram Administrateur

    J'ai essayé votre code et il fonctionne...

    le 26/08/2016 à 19h33

  • yehia.maxime

    yehia.maxime

    mon code a l'air plûtot bon je ne comprends pas

    le 10/01/2017 à 03h18

  • sanaatargui

    sanaatargui

    Bonjour, j'ai toujours le message "AVEZ-VOUS BIEN ÉCRIT LA STRUCTURE SWITCH EN UTILISANT LA SYNTAXE DE L'ASTUCE ?"

    le 20/04/2017 à 14h36

  • mickaelquintin

    mickaelquintin

    Bonsoir "Avez-vous bien vérifié tous les cas (1 à 5)? je ne comprends pas mon erreur. Je vous remercie.

    le 23/11/2016 à 18h51

  • mram

    mram Administrateur

    Essayez en mettant les "break" à la ligne.

    le 11/01/2017 à 18h45

  • mram

    mram Administrateur

    Ligne 13, à la fin il y a des espaces en trop. Sinon le code est juste.

    le 22/04/2017 à 11h56

  • phaelier

    phaelier

    Bonsoir "Avez-vous bien vérifié tous les cas (1 à 5)? je ne comprends pas mon erreur. Je vous remercie.

    le 18/10/2016 à 21h37

  • sebastien.richard

    sebastien.richard

    "Avez-vous bien vérifié tous les cas de (1 à 5) ?" Il me semble bien que oui et pour avoir testé mon code il fonctionne : switch (number) { case 1:alert(1); break; case 2:alert(2); break; case 3:alert(3); break; case 4:alert(4); break; case 5:alert(5); break; default:alert("La valeur est forcément zéro : " + number); } Est-il possible d'avoir un peu d'aide ?

    le 05/10/2016 à 19h46

  • sebastien.richard

    sebastien.richard

    J'ai trouvé mon erreur. Il fallait indiquer la variable et non pas la valeure dans les alert(). Le message d'erreur m'a perturbé. Désolé

    le 05/10/2016 à 19h51

  • hedin.sri

    hedin.sri

    Bonjour, pouvez-vous m'aider car je ne comprends pas mon erreur. Merci

    le 25/03/2017 à 17h14

  • Marodheure

    Marodheure

    Je vous conseil d'écrire absolument tout le code à la main sans faire de copier coller à partir du cours et de l'astuce, c'est uniquement de cette manière que j'ai réussi à faire passer mon code.

    le 19/05/2017 à 23h24

  • romainf388

    romainf388

    Je ne comprends pas mon erreur ...

    le 11/01/2018 à 18h34

  • mram

    mram Administrateur

    Bonjour, sur la dernière ligne. L'espace est avant le double point et non après.

    le 12/01/2018 à 02h47

  • gcharmassonjm-87

    gcharmassonjm-87

    switch (number) { case 1 : alert(number) break; case 2 : alert(number) break; case 3 : alert(number) break; case 4 : alert(number) break; case 5 : alert(number) break; default : alert("La valeur est forcément zéro : "+ number) } Bonjour je ne vois pas mon erreur : Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ? Je ne comprends pas

    le 10/09/2018 à 12h54

  • mram

    mram Administrateur

    Essayez en supprimant l'espace devant chaque " : "

    le 16/09/2018 à 06h46

  • abmms-7

    abmms-7

    je ne vois pas mon erreur:switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro :" + number);break; }

    le 18/12/2018 à 19h31

  • meriam

    meriam Administrateur

    Votre switch doit etre aprés la déclaration de la variable number. Pour le message de default laissez espace entre les : et les guillemets comme ça default:alert("La valeur est forcément zéro : " + number).

    le 19/12/2018 à 11h52

  • charles.bonnin1-99

    charles.bonnin1-99

    Bonjour, mon code est le suivant switch (number ) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert(number.concat("La valeur est forcément zéro")); break; } ; l'erreur affichée est " Avez-vous utilisé la méthode de l'astuce...", pourriez-vous lme dire ou j'ai faux, svp?

    le 20/09/2018 à 12h29

  • meriam

    meriam Administrateur

    Bonjour, pas besoin de mettre break aprés default.

    le 04/10/2018 à 15h35

  • meriam

    meriam Administrateur

    Bonjour, pas besoin de mettre break aprés default.

    le 04/10/2018 à 15h36

  • bruel.william-2

    bruel.william-2

    Bonjour, pourriez vous m'aider svp ?

    le 30/04/2018 à 16h03

  • mram

    mram Administrateur

    Bonjour, c'est bien comme ça qu'il faut écrire chaque cas : "case 1:alert(number);" Vous aviez bon au début sauf pour le cas 1.

    le 04/05/2018 à 06h56

  • dmjolison40

    dmjolison40

    Bonjour, après plusieurs essaie je ne vois pas mon erreur, pouvez-vous m'aider s'il vous plait? merci

    le 04/09/2018 à 05h22

  • mram

    mram Administrateur

    Bonjour, que vous dit le message d'erreur ? ça aidera à identifier le souci.

    le 10/09/2018 à 03h45

  • salwa.nijaoui

    salwa.nijaoui

    Bonjour, j'ai toujours la réponse: "avez-vous bien vérifié tous les cas de (1 à 5), je ne vois pas mon erreur,svp

    le 31/08/2017 à 22h41

  • mram

    mram Administrateur

    Bonjour, dans les alert il faut mettre la variable number...

    le 06/09/2017 à 10h20

  • lienmontage

    lienmontage

    Est ce que quelqu'un a la réponse, " je vais devenir fou si non "?

    le 11/03/2018 à 18h23

  • mram

    mram Administrateur

    Bonjour, il y a des espaces inutiles après l'accolade {

    le 12/03/2018 à 00h28

  • gorollena-71

    gorollena-71

    Pourquoi il faut ajouter + number ?

    le 04/04/2018 à 21h23

  • mram

    mram Administrateur

    Bonjour, c'est une concaténation. Revoyez les premiers exercices JS, il doit y en avoir un qui aborde cette notion.

    le 05/04/2018 à 04h06

  • lhelgoualch.jeremie-73

    lhelgoualch.jeremie-73

    Bonjour, je ne comprend pas mon erreur: switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro:" + number) }

    le 06/08/2018 à 16h10

  • mram

    mram Administrateur

    Bonjour, que vous dit le message d'erreur exactement.

    le 13/08/2018 à 03h35

  • bernardraphael13

    bernardraphael13

    bonjour j'ai toujours le message d'erreur Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ? pouvez vous me donner une piste pour cette erreur merci d'avance;

    le 26/06/2017 à 09h43

  • mram

    mram Administrateur

    Bonjour, le code es bon, juste un espace en trop ligne 2 après l'accolade.

    le 29/06/2017 à 16h16

  • fahad.abdillah

    fahad.abdillah

    je ne comprends pas où est mon erreur

    le 31/10/2017 à 19h45

  • mram

    mram Administrateur

    Bonjour, vous avez oublié de concaténer la variable number avec la phrase.

    le 31/10/2017 à 23h57

  • soacynthiasoa-62

    soacynthiasoa-62

    Bonjour, ou est l'erreur ? switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro : " + number); }

    le 10/06/2018 à 18h11

  • mram

    mram Administrateur

    Bonjour, alignez l'accolade } avec la première.

    le 13/06/2018 à 04h34

  • lilla

    lilla

    Bonjour, je ne trouve pas l'erreur dans mon code, pourriez-vous m'aider ? Merci !

    le 21/01/2018 à 12h16

  • mram

    mram Administrateur

    Bonjour, la syntaxe pour la dernière condition n'est pas correcte. Relisez bien comment s'écrit une structure "switch".

    le 22/01/2018 à 11h46

  • ludmilla.cauvet-80

    ludmilla.cauvet-80

    merci de votre aide pour l'erreur ?

    le 17/05/2018 à 10h43

  • mram

    mram Administrateur

    Bonjour, l'erreur est dans le premier mot du code. Attention aux fautes de frappe.

    le 23/05/2018 à 06h30

  • valerie.cohen0-81

    valerie.cohen0-81

    bonjour ou est mon erreur ?

    le 05/04/2018 à 19h14

  • mram

    mram Administrateur

    Bonjour, vous aviez des espaces inutiles après l'accolade { . On attend un retour à la ligne direcement après.

    le 09/04/2018 à 18h41

  • pauline.morganti

    pauline.morganti

    switch(number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro:"+number); } Je ne sais pas ce qui va pas svp

    le 12/12/2017 à 10h24

  • mram

    mram Administrateur

    Bonjour, ajoutez un espace après "switch" .

    le 14/12/2017 à 21h24

  • ourfiornella-10

    ourfiornella-10

    je narrive pas !

    le 12/10/2018 à 20h14

  • meriam

    meriam Administrateur

    Aprés chaque case, il faut ajouter le mot clé "break" qui permet d'arrêter le switch si l'égalité est vérifiée car pas besoin d'aller plus loin;

    le 14/10/2018 à 21h33

  • viesephora

    viesephora

    j'ai pas compris la consigne ...

    le 16/11/2017 à 12h52

  • mram

    mram Administrateur

    Bonjour, votre code est correct. Ajoutez juste une tabulation à tout le code qui se trouve dans les accolades.

    le 16/11/2017 à 18h58

  • ronangarnier

    ronangarnier

    Bonjour mram, je ne trouve pas mon erreur. j'ai ce message "Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ?"

    le 25/09/2017 à 12h17

  • mram

    mram Administrateur

    Bonjour, autour du signe + mettez des espaces. Le reste du code est correct.

    le 25/09/2017 à 17h57

  • mram

    mram Administrateur

    Bah, vos venez de le faire :)

    le 25/09/2017 à 17h58

  • stephanie.rouby

    stephanie.rouby

    C'est corrigé, merci !

    le 28/11/2017 à 15h02

  • belgrain.cecilia

    belgrain.cecilia

    bonjour, pourriez-vous vérifier mon code svp je ne vois pas où est mon erreur, j'ai le message "Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ?" Merci

    le 28/11/2017 à 16h44

  • mram

    mram Administrateur

    Bonjour, il manque le " ;" à la fin de l'avant dernière ligne.

    le 01/12/2017 à 00h01

  • sarahberri-70

    sarahberri-70

    Bonjour, je n'arrive pas à valider cet exercice.

    le 05/01/2019 à 12h30

  • meriam

    meriam Administrateur

    Bonjour, il vous manque de l'espace pour le message default de la ligne 16, alert("La valeur est forcément zéro :" + number); }, il faut laisser espace entre les : et les guillemets. Vérifiez le message de l'énoncé.

    le 07/01/2019 à 13h34

  • Leob974

    Leob974

    Bonjour, je ne comprends pas, mon code à l'air correct mais ne fonctionne pas

    le 26/06/2018 à 03h17

  • mram

    mram Administrateur

    Bonjour, vérifiez que vous n'avez pas d'espaces inutiles en fin de ligne.

    le 28/06/2018 à 03h46

  • dilmi.chourouk

    dilmi.chourouk

    J'ai essayé d'autres choses >>> switch(number) { case Math.floor(Math.random()*5) : alert(number); break; default : alert("Pas de chiffre"); } <<< Ca génère une valeurs de 0 à 5 et un cas de 0 à 5 du coup 1 chance sur 6, bon ça sert pas à grand chose ici etant donnée que c'est du hasard dans les deux cas...

    le 23/01/2018 à 20h55

  • mram

    mram Administrateur

    Bonjour, en faisant ainsi le souci est que vous ne contrôlez pas du tout le flux d'exécution du code puisque c'est régit par le hasard. Ce n'est pas vraiment le but d'une structure de contrôle.

    le 24/01/2018 à 16h56

  • petit requin

    petit requin

    Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ? = bonjour, je ne comprend pas pourquoi il m'est écrit son message?

    le 29/06/2017 à 19h35

  • mram

    mram Administrateur

    Il vous manque un "break" après la ligne 11 et qui correspond au cas n°5

    le 07/07/2017 à 10h09

  • barb.m-30

    barb.m-30

    bonjour, voici mon code et si je valide il me demande de mettre 2 instructions " alert et break". je ne comprends pas car d'après la leçon il ne faut pas et mon exercice ne se valide toujours pas. Merci pour votre aide

    le 24/12/2018 à 13h02

  • meriam

    meriam Administrateur

    Bonjour, aprés case 5 et alert, il faut mettre break. Pour chaque case il faut un break qui permet d'arrêter le switch si l'égalité est vérifiée car pas besoin d'aller plus loin. Pour le message de default, il faut laisser de l'espace entre le zéro , les : et les guillemets " ce qui donne default: alert("La valeur est forcément zéro : " + number);

    le 24/12/2018 à 13h08

  • davy.mawete

    davy.mawete

    "Avez-vous bien vérifié tous les cas (1 à 5) ?" alors que j'ai entré toutes les case de 1 à 5, une piste ?

    le 28/09/2018 à 18h27

  • meriam

    meriam Administrateur

    Il est conseillé de l'écrire comme ceci : switch () { case valeur:instruction1; break; case valeur:instruction2; break; default:instruction3; }

    une espace entre le case et la valeur suivie immédiatement par: puis l&#39;instruction;    
    

    le 05/10/2018 à 18h26

  • ludovicthiolet

    ludovicthiolet

    Bonjour, Je suis bloqué !!!!!!

    le 07/10/2017 à 14h51

  • mram

    mram Administrateur

    Bonjour, il ne faut pas d'espace autour du double-point.

    le 09/10/2017 à 00h49

  • ludovicthiolet

    ludovicthiolet

    bonjour, Je viens de supprimer l'espace autour des double points et cela ne fonctionne toujours pas !!!

    le 19/10/2017 à 11h29

  • mram

    mram Administrateur

    Bonjour, il y en a aussi après l'accolade {

    le 20/10/2017 à 16h56

  • nathalie.2080

    nathalie.2080

    Help svp

    le 27/12/2017 à 22h47

  • mram

    mram Administrateur

    Bonjour, essayez avec un espace avant les " : " de ponctuation dans la phrase.

    le 31/12/2017 à 18h27

  • Carine1972

    Carine1972

    mon erreur mais l'erreur vient de la leçon : il n'est pas indiqué de "break;" avant "default" (dans l'encadré). A rectifier, merci.

    le 06/09/2017 à 15h57

  • mram

    mram Administrateur

    Bonjour, on dit bien dans la leçon "pour chaque case il faut un break" mais c'est vrai que dans l'exemple on l'a oublié. C'est corrigé merci !

    le 12/09/2017 à 15h28

  • nathalie.2080

    nathalie.2080

    Bonjour!pouvez vous me dire ce qui ne va pas?merci

    le 17/12/2017 à 18h02

  • mram

    mram Administrateur

    Bonjour, il faut ajouter une tabulation au code qui est dans les accolades.

    le 23/12/2017 à 12h44

  • tomcardon35

    tomcardon35

    comme l''exercice précédent je ne vois pas ce qui ne va pas ??

    le 17/12/2017 à 23h03

  • mram

    mram Administrateur

    Bonjour, votre code était correct mais il est préférable de mettre chaque instructions sur une ligne à part afin de rendre le code lisible.

    le 23/12/2017 à 12h45

  • ronangarnier

    ronangarnier

    Mais même avec les espaces autour du signe + cela affiche le message et ne valide pas.

    le 25/09/2017 à 18h29

  • mram

    mram Administrateur

    Bonjour, après l'accolade { il faut aller directement à la ligne.

    le 29/09/2017 à 01h08

  • belgrain.cecilia

    belgrain.cecilia

    ha oui lol ! merci

    le 02/12/2017 à 14h15

  • dave16-3

    dave16-3

    Je ne comprends pas mon erreur...

    le 12/04/2018 à 04h48

  • mram

    mram Administrateur

    Bonjour, mettez les "break" sur une ligne à part.

    le 15/04/2018 à 02h04

  • florentin.cambou

    florentin.cambou

    Juste pour donner un avis , concentré vous sur la leçon car comme un idiot je me suis induit en erreur , mais en venant voir les commentaires j'ai vu mon erreur et ne changer pas simplement ce que vous avez fais avec la ligne de quelqu'un d'autre réfléchissais dans mon cas j'avais pas fait attention que case fessait des égalité stricte alors j'ai fais un peu n'importe quoi ^^

    le 19/12/2017 à 18h41

  • florentin.cambou

    florentin.cambou

    Bonjour pouvez vous vérifié mon code car il me semble juste pourtant O.o

    le 19/12/2017 à 18h47

  • mram

    mram Administrateur

    Bonjour, supprimez juste les espaces autour du signe " : " .

    le 23/12/2017 à 16h28

  • andrewedina-29

    andrewedina-29

    help please!

    le 23/02/2018 à 17h23

  • mram

    mram Administrateur

    Bonjour, vous avez une ligne vide inutile tout à la fin.

    le 25/02/2018 à 01h55

  • fromentxavier-81

    fromentxavier-81

    Bonjour. Est ce normal qu'on doive mettre un break; après la ligne default ? J'ai du en mettre pour valider l'exercice, alors que dans la leçon on nous dit de ne pas en mettre ? Cela porte à confusion !

    le 27/12/2018 à 13h34

  • meriam

    meriam Administrateur

    Bonjour, le break aprés default n'est pas obligatoire.

    le 28/12/2018 à 09h44

  • louise.perrollet-33

    louise.perrollet-33

    Bonjour, mon code a l'air bon, j'enlève et remet des espaces mais rien n'y fait j'ai toujours ce message d'erreur qui apparait : "missing ) after argument list" pourtant rien ne manque.. pourriez-vous m'aider?

    le 06/06/2018 à 16h43

  • mram

    mram Administrateur

    Bonjour, il faut toujours coller les () au nom des fonctions : alert(), prompt() ...

    le 07/06/2018 à 04h56

  • marine.bois8

    marine.bois8

    bonjour, pourriez-vous vérifier mon code svp je ne voit pas où est mon erreur, j'ai le message "Avez-vous bien écrit la structure switch en utilisant la syntaxe de l'astuce ?" Merci

    le 23/10/2017 à 22h11

  • mram

    mram Administrateur

    Bonjour, il n'y a pas de "break" après "default" .

    le 25/10/2017 à 15h12

  • slaouitaibi

    slaouitaibi

    bonjour, mon code est censé etre correct mais j'ai une erreur

    le 09/09/2017 à 21h10

  • mram

    mram Administrateur

    Bonjour, bizarre j'ai copié / collé votre code et j'ai pu valider l'exercice ...

    le 12/09/2017 à 16h59

  • monmonmillet

    monmonmillet

    je comprend pas mon ou mes erreurs ????????

    le 28/09/2017 à 10h33

  • mram

    mram Administrateur

    Bonjour, il faut coller les ":" avec "default" .

    le 29/09/2017 à 02h52

  • chung.francois-53

    chung.francois-53

    j'ai déja supprimé tous les espaces possibles

    le 18/10/2018 à 14h27

  • meriam

    meriam Administrateur

    Pas besoin de déclarer la variable number (elle est déja déclarée). Supprimez l'espace entre le mot clé switch et les parenthèses.

    le 18/10/2018 à 14h51

  • comm

    comm Administrateur

    Quand j'écris case1:alert(1) on me demande de mettre number dans alert. Quand je modifie, on me demande de mettre quelque chose de spécifique en vérifiant les instructions...

    le 10/03/2019 à 16h47

  • matsolidity-8

    matsolidity-8

    Bonjour, question : A quoi sert le break du cas default dans un switch ?? que reste-il à breaker ?

    le 27/12/2018 à 19h52

  • meriam

    meriam Administrateur

    Bonjour, break permet d'arrêter le switch si l'égalité est vérifiée car pas besoin d'aller plus loin, pour default le break n'est pas obligatoire (default est exécuté si aucun cas n'est vérifié) .

    le 28/12/2018 à 10h15

  • lienmontage

    lienmontage

    Bonjour, j'ai essayé mon code sur un IDT et ça marche, c'est quoi mon problème svp ?

    le 07/03/2018 à 17h33

  • mram

    mram Administrateur

    Bonjour, il manque le point-virgule à la fin de la dernière ligne.

    le 08/03/2018 à 23h24

  • triplaxs

    triplaxs

    switch(number) { case 1:alert(number); break; case 2:alert(number); break; case 2:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default: alert("La valeur est forcément zéro :"+number); } je ne vois pas mes faute svp

    le 08/08/2017 à 13h39

  • triplaxs

    triplaxs

    oupse 12345

    le 08/08/2017 à 13h44

  • triplaxs

    triplaxs

    switch(number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro :"+ number); } je me suis corriger sa ne fonction pas qu'elle et mon erreur.

    le 08/08/2017 à 14h17

  • triplaxs

    triplaxs

    j'ai trouver il faut supprimer l’espace avant switch ouf!!!

    le 08/08/2017 à 14h58

  • mram

    mram Administrateur

    Bonjour, oui bien que le code soit juste et fonctionnel nous vérifions aussi la syntaxe pour la lisibilité du code, mais sans ça votre code est juste.

    le 09/08/2017 à 11h36

  • tchekpo_cletus

    tchekpo_cletus

    j'arrive pas à valider mon code. dites moi mon erreur s'il vous plait

    le 29/09/2017 à 00h00

  • mram

    mram Administrateur

    Bonjour, il faut coller les ":" avec "default" .

    le 29/09/2017 à 02h54

  • ctmjeorange.fr

    ctmjeorange.fr

    switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro:" + number) } Je ne comprends pas le site me dit:"Avez vous bien écrit la structure switch en utilisant la syntaxe de l'astuce?"

    le 21/12/2017 à 14h17

  • mram

    mram Administrateur

    Bonjour, il manque un " ; " à la fin de la dernière instruction.

    le 23/12/2017 à 16h53

  • sofianemeziani15-46

    sofianemeziani15-46

    switch (number) { case 1: alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5: alert(number); break; default:alert("La valeur est forcément zéro :" + number); } je ne vois pas mon erreur???

    le 16/01/2018 à 22h14

  • mram

    mram Administrateur

    Bonjour, vous aviez oublié d'aller à la ligne. Mettre 1 cas par ligne est plus lisible.

    le 19/01/2018 à 16h07

  • y.gnazale-24

    y.gnazale-24

    Bonjour, je ne vois pas mon erreur, lorsque je soumets mon code ils me demandent "Avez-vous bien vérifié tous les cas (1 à 5) ?"

    le 03/07/2018 à 18h11

  • mram

    mram Administrateur

    Bonjour, vous avez des espaces en trop en fin de ligne 10 et 11 ...., ça doit venir de là.

    le 09/07/2018 à 03h19

  • clausse76230

    clausse76230

    je ne comprend pas ou est mon erreur ?,merci

    le 21/09/2017 à 12h34

  • mram

    mram Administrateur

    Bonjour, il faut juste un espace après "switch".

    le 22/09/2017 à 18h13

  • estellefaucon-88

    estellefaucon-88

    bonjour, je ne comprends pas ou est mon erreur à la ligne default. J'ai essayé avec et sans espace et j'ai toujours un message me disant que je dois relire les instructions.

    le 11/08/2019 à 18h50

  • karim.gsmclichy-13

    karim.gsmclichy-13

    bonjour, il faudrait préciser dans l'exemple de la leçon qu'il y a un 'break;' juste apres le 'default:instruction4;' c'est cela qui m'a porté à confusion.

    le 24/11/2018 à 13h39

  • stevencourbet-59

    stevencourbet-59

    switch (number) { case 1:alert(number); break; case 2:alert(number); break; case 3:alert(number); break; case 4:alert(number); break; case 5:alert(number); break; default:alert("La valeur est forcément zéro:" + number); }

    le 11/07/2019 à 13h14

  • kastallimalek-47

    kastallimalek-47

    Concatener c'est avec le signe +, si cela ne marche pas faite attention au espace le bon code est switch (number){ case 1:alert(number);break; case 2:alert(number);break; case 3:alert(number);break; case 4:alert(number);break; case 5:alert(number);break; default:alert("La valeur est forcément zéro : " +number);break; }

    le 15/07/2019 à 21h17

  • dupsolaz003-30

    dupsolaz003-30

    Bonjour Meriam, merci pour l'explication.

    le 10/03/2019 à 00h18

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>La structure switch</title> <script src="script.js"></script> </head> <body> </body> </html>
/* Pas besoin de modifier la variable number */ var number = Math.floor((Math.random() * 6)); /* Votre switch ici */