Exercice 1.2.3 : apprendre les particularités du switch et l'utilisation de la bibliothèque standard
Par Alain Bontemps
Le 2016-04-18 20:48:37, par vermine, Expert éminent sénior
Exercice 1.2.3 : Les particularités du switch et l'utilisation de la bibliothèque standard
Apprendre le JavaScript de manière pédagogique
Bonjour,
Nous sommes en train de mettre en place une série d'exercices pour apprendre le JavaScript et Node.js.
Autran, Gnuum et ABCIWEB ont participé à la rédaction de ce quatrième exercice qui porte sur les particularités de la structure conditionnelle switch. L'exercice est accompagné d'un petit cours théorique et vous propose une solution.
Exercice 1.2.3 : Les particularités du switch et l'utilisation de la bibliothèque standard
N'hésitez pas nous faire part de vos remarques, difficultés rencontrées et autres suggestions. Les auteurs répondront à vos questions et vous guideront dans la réalisation d'une solution idéale.
Découvrez également tous nos exercices JavaScript !
Bon boulot !
Apprendre le JavaScript de manière pédagogique
Bonjour,
Nous sommes en train de mettre en place une série d'exercices pour apprendre le JavaScript et Node.js.
Autran, Gnuum et ABCIWEB ont participé à la rédaction de ce quatrième exercice qui porte sur les particularités de la structure conditionnelle switch. L'exercice est accompagné d'un petit cours théorique et vous propose une solution.
- Objectif : Manipuler les structures conditionnelles de manière avancée.
- Niveau : Intermédiaire
- Exigence : Indispensable
N'hésitez pas nous faire part de vos remarques, difficultés rencontrées et autres suggestions. Les auteurs répondront à vos questions et vous guideront dans la réalisation d'une solution idéale.
Découvrez également tous nos exercices JavaScript !
Bon boulot !
-
touitMembre du ClubMerci pour ces exercices, qui me semblent plus simple que ceux du blog d'Autran, bientot la suite ?le 29/04/2016 à 22:14
-
Beginner.Membre expertSalut Touit,
Tu as déjà fait tous les exercices ? Tu as été rapide ! Bravo !
Par contre tu ne postes pas tes réponses si j'ai bien compris ?le 30/04/2016 à 0:05 -
touitMembre du ClubSalut ! Merci, non je les ai pas postes car je n avais pas vu jusqu a hier qu on pouvait poster. Du coup je vais les refaire demain et poster mes réponsesle 30/04/2016 à 10:28
-
Beginner.Membre expertSalut tout le monde,
@Touit : Tu as pris de l'avance à ce que je vois, il va falloir que je m'y remette !le 13/05/2016 à 19:36 -
GnuumMembre expérimentéOn va essayer de faire arriver la suite des exercices rapidement! Désolé pour le petit retard!le 14/05/2016 à 9:22
-
touitMembre du ClubSalut
Je n'ai pas pris trop d'avances Beginner, j'apprends php en même temps. Et ces derniers temps j'ai beaucoup été dessus.
J'attends les nouveaux exercices avec plaisirle 14/05/2016 à 17:06 -
d3LTa7Membre régulierBonsoir !!
Je ne comprends pas trop la solution de l'exercice au final car même si j'y était presque, j'ai du regarder la solution... Je comprend a quoi tout cela sert tout ce que j'ai appris jusqu'à présent mais ca reste compliqué à mettre en place, c'est un peu comme un puzzle, on a les pièces mais pas facile de les placé la ou il faut :/
De plus je ne crois pas avoir bien compris le switch au final... De ce que j'ai compris, si il n'y a pas de break alors il va passer au case d'en dessous en gardant la valeur jusqu'au prochain break ? Mais dans l'exercice le T de terra est tout en haut et devrait donc donné un petit chiffre (bytes = bytes * 1024) mais il donne bien un chiffre énorme et si ce n'est pas un T alors c'est en dessous et donc va garder la valeur du premier bytes et refaire le même calcul jusqu'a tomber sur la bonne case ou le break.. Mais plus ca "descend" plus le chiffre diminue... j'avoue ne pas saisir :/
Pour conclure dans l’énoncé il y a une variable number qui disparait dans la réponse... du coup j'suis un peu perdu...le 11/07/2018 à 20:26 -
d3LTa7Membre régulierVoici le code que j'ai écris
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31var shortenBytes = '10t'; var letter = shortenBytes.substr(-1, 1); var bytes; var number = Number.parseInt(shortenBytes, 10); //console.log(letter) if (isNaN(number)){ bytes = false }else if (number != isNaN){ switch (letter.toUpperCase()) { case 'K': bytes = number * 1024; break; case 'M': bytes = number * 1024 * 1024; break; case 'G': bytes = number * 1024 * 1024 * 1024; break; case 'T': bytes = number * 1024 * 1024 * 1024 * 1024; break; default: bytes = false; } } console.log(bytes);
le 11/07/2018 à 20:45 -
maedgipaCandidat au ClubBonjour,
L'exercice est très intéressant et instructif. On trouve rarement des exercices sur JS afin de mettre en pratique les apports théoriques. Un grand merci donc.
A quand un bootcamp virtuel où on ferait des TP à longueur de journée pour assimiler et graver durablement la syntaxe JS ?!
En tous les cas, il y a un point qui m'échappe dans votre correction.
A supposer en effet qu'on n'ait pas renseigné d'unité, n'aurait-on pas dû tomber sur default dans le switch ?
J'ai d'abord tenté ça :Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24var nombreUniteMesure = '150'; var nombre = nombreUniteMesure.substr(0,--nombreUniteMesure.length); var number = +nombre; var uniteMesure = nombreUniteMesure.substr(-1,1); switch (uniteMesure.toUpperCase()){ case ' '://"Si on n'indique pas d'unité', on suppose que la var testée indique des octets" result = number; break; case 'K': result = number*1024; break; case 'M': result = number*Math.pow(1024,2); break; case 'G': result = number*Math.pow(1024,3); break; case 'T': result = number*Math.pow(1024,4); break; default: result=(!true) } console.log(result);
Mais par contre, on tombe sur default si on n'indique pas d'unité. J'ai essayé avec case undefined (pas d'unité de mesure indiquée) et on tombe aussi sur default.
Pourriez-vous éclairer ma lanterne ?
Merci d'avance
maedle 07/02/2019 à 12:55 -
NoSmokingModérateurBonjour,
Mais par contre, on tombe sur default si on n'indique pas d'unité.
Code : 1
2
3
4
5var nombreUniteMesure = '150'; // var nombre = nombreUniteMesure.substr(0,--nombreUniteMesure.length); // var number = +nombre; var uniteMesure = nombreUniteMesure.substr(-1,1); console.log(uniteMesure);
le 11/02/2019 à 11:39