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


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.

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

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.

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

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);

Ajouter une boucle pour ?

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