Mon code n'est pas compris par le navigateur : Unexpected token case

Par Lens Durandisse2, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

J'essaie de réaliser le TP "transformer un nombre en lettre" du cours "Dynamisez vos sites WEB avec Javascript" sur OpenClassroom

function testNumber(){ var ask = prompt('Enter a number from 1 to 999','Write here'); var unités = ask % 10; var dizaines = ask % 100; var centaines = ask % 1000; if(centaines){ centaines = centaines - dizaines; } if (dizaines){ dizaines = dizaines - unités; } switch(unités){ case 1 : unités = 'un'; break; case 2 : unités = 'deux'; break; case 3 : unités = 'trois'; break; case 4 : unités = 'quatre'; break; case 5 : unités = 'cinq'; break; case 6 : unités = 'six'; break; case 7 : unités = 'sept'; break; case 8 : unités = 'huit'; break; case 9 : unités = 'neuf'; break; case 0 : unités = 'zéro'; break; default: alert('Please, enter a valid number!'); } switch(dizaines){ case 10 : dizaines = 'dix'; break; case 20 : dizaines = 'vingt'; break; case 30 : dizaines = 'trente'; break; case 40 : dizaines = 'quarante'; break; case 50 : dizaines = 'cinquante'; break; case 60 : dizaines = 'soixante'; break; case 70 : dizaines = 'soixante-dix'; break; case 80 : dizaines = 'quatre-vingt'; break; case 90 : dizaines = 'quatre-vingt-dix'; break; case 0 : dizaines = ''; break; default: alert('Please, enter a valid number!'); } switch(centaines){} case 100 : centaines = 'cent'; break; case 20 : centaines = 'deux-cent'; break; case 30 : centaines = 'trois-cent'; break; case 40 : centaines = 'quatre-cent'; break; case 50 : centaines = 'cinq-cent'; break; case 60 : centaines = 'six-cent'; break; case 70 : centaines = 'sept-cent'; break; case 80 : centaines = 'huit-cent'; break; case 90 : centaines = 'neuf-cent'; break; case 0 : centaines = ''; break; default: alert('Please, enter a valid number!'); var nombre_en_lettre = unités + dizaines + centaines; alert(nombre_en_lettre); } testNumber();

J'obtiens alors "Unexpected token case" donc une erreur dont je ne sais absolument pas la signification

Merci de votre aide!

7 réponses

Carouge10, il y a 10 ans

Bonsoir,
Une chose très très très très importante (^_^), ne jamais mettre de caractère spécial (é, è, ê .....) dans un nom de variable.

Lens Durandisse2, il y a 10 ans

Ah d'accord, j'avais oublié :0

Carouge10, il y a 10 ans

Si ça ne fonctionne pas, essayer juste d'afficher les unités et ainsi de suite.
Par contre, il vous faudra ajouter un espace entre vos variables sinon cela va former un seul et même mot.

Lens Durandisse2, il y a 10 ans

Bonjour, j'ai compris mon erreur. Je n'ai pas assez relu mon code. En fait j'avais oublié de retirer une accolade; j'en avais mis un d'avance et j'en ai remis un autre. De plus, à la fin, ca devrait être les centaines, ensuite, les dizaines, ensuite les unités et non l'inverse
Par contre sauriez-vous comment ajouter une boucle? Car à chaque fois, je dois rafraichir la page =P

Lens Durandisse2, il y a 10 ans

Voici mon nouveau code :

function testNumber(){ var ask = prompt('Enter a number from 1 to 999','Write here'); var unités = ask % 10; var dizaines = ask % 100; var centaines = ask % 1000; if(centaines){ centaines = centaines - dizaines; } if (dizaines){ dizaines = dizaines - unités; } switch(unités){ case 1 : unités = 'un'; break; case 2 : unités = 'deux'; break; case 3 : unités = 'trois'; break; case 4 : unités = 'quatre'; break; case 5 : unités = 'cinq'; break; case 6 : unités = 'six'; break; case 7 : unités = 'sept'; break; case 8 : unités = 'huit'; break; case 9 : unités = 'neuf'; break; case 0 : unités = ''; break; } switch(dizaines){ case 10 : dizaines = 'dix'; break; case 20 : dizaines = 'vingt'; break; case 30 : dizaines = 'trente'; break; case 40 : dizaines = 'quarante'; break; case 50 : dizaines = 'cinquante'; break; case 60 : dizaines = 'soixante'; break; case 70 : dizaines = 'soixante-dix'; break; case 80 : dizaines = 'quatre-vingt'; break; case 90 : dizaines = 'quatre-vingt-dix'; break; case 0 : dizaines = ''; break; } switch(centaines){ case 100 : centaines = 'cent'; break; case 200 : centaines = 'deux-cent'; break; case 300 : centaines = 'trois-cent'; break; case 400 : centaines = 'quatre-cent'; break; case 500 : centaines = 'cinq-cent'; break; case 600 : centaines = 'six-cent'; break; case 700 : centaines = 'sept-cent'; break; case 800 : centaines = 'huit-cent'; break; case 900 : centaines = 'neuf-cent'; break; case 0 : centaines = ''; break; } var nombre_en_lettre = centaines + ' ' + dizaines + ' ' + unités; return nombre_en_lettre; } var nouvelleForme = testNumber(); document.write(nouvelleForme);
Carouge10, il y a 10 ans

Ajouter une boucle pour ?

Lens Durandisse2, il y a 10 ans

Je vais continuer à travailler sur mon code, merci de ton aide.