Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Exercice 1.2.3 : apprendre les particularités du switch et l'utilisation de la bibliothèque standard
Par Alain Bontemps

Le , par vermine

27PARTAGES

2  0 
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.

  • Objectif : Manipuler les structures conditionnelles de manière avancée.
  • Niveau : Intermédiaire
  • Exigence : Indispensable


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 !

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de touit
Membre du Club https://www.developpez.com
Le 29/04/2016 à 22:14
Merci pour ces exercices, qui me semblent plus simple que ceux du blog d'Autran, bientot la suite ?
0  0 
Avatar de Beginner.
Membre chevronné https://www.developpez.com
Le 30/04/2016 à 0:05
Salut 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 ?
0  0 
Avatar de touit
Membre du Club https://www.developpez.com
Le 30/04/2016 à 10:28
Salut ! 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éponses
0  0 
Avatar de Beginner.
Membre chevronné https://www.developpez.com
Le 13/05/2016 à 19:36
Salut tout le monde,

@Touit : Tu as pris de l'avance à ce que je vois, il va falloir que je m'y remette !
0  0 
Avatar de Gnuum
Membre expérimenté https://www.developpez.com
Le 14/05/2016 à 9:22
On va essayer de faire arriver la suite des exercices rapidement! Désolé pour le petit retard!
0  0 
Avatar de touit
Membre du Club https://www.developpez.com
Le 14/05/2016 à 17:06
Salut

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 plaisir
0  0 
Avatar de d3LTa7
Nouveau membre du Club https://www.developpez.com
Le 11/07/2018 à 20:26
Bonsoir !!

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...
0  0 
Avatar de d3LTa7
Nouveau membre du Club https://www.developpez.com
Le 11/07/2018 à 20:45
Voici le code que j'ai écris

Code : Sélectionner tout
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
31
var 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);
0  0 
Avatar de maedgipa
Candidat au Club https://www.developpez.com
Le 07/02/2019 à 12:55
Bonjour,
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 : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var 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);
"Globalement", ça fonctionne. Certes, l'approche est infiniment moins pertinente que votre solution...
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
maed
0  0 
Avatar de NoSmoking
Modérateur https://www.developpez.com
Le 11/02/2019 à 11:39
Bonjour,
Mais par contre, on tombe sur default si on n'indique pas d'unité.
regarde simplement pour commencer ce que donne
Code : Sélectionner tout
1
2
3
4
5
var nombreUniteMesure = '150';
//  var nombre = nombreUniteMesure.substr(0,--nombreUniteMesure.length);
//  var number = +nombre; 
var uniteMesure = nombreUniteMesure.substr(-1,1);
console.log(uniteMesure);
surement pas ce à quoi tu t'attends !
0  0 
Contacter le responsable de la rubrique JavaScript

Partenaire : Hébergement Web