Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème [Comparaison de deux nombres] - JS

Debuggage clean mais code non fonctionnel

    19 octobre 2018 à 5:18:36

    Hello tous le monde !

    J'ai un petit soucis JavaScript qui me fais chauffer ma petite cervelle de noob codeur depuis plusieurs heures avec triturage dans tous les côtés sans résultats... J'ai besoin de vos conseils experts :) 

    Voici le code que j'ai écrit pour ce petit problème : 

    // Fichier JavaScript MiniProgramme Comparaison de deux nombres //
    	
    console.log ('Bonjour JavaScript !');
    
    
    var nb1 = Number(prompt("Entrer un premier nombre entier"));
    var nb2 = Number(prompt("Entrer un deuxième et dernier nombre entier"));
    var total = (nb1 - nb2);
    
    	switch (total) {
    
    		case total < 0 :
    			console.log ("La première valeure ("+ nb1 + ") est plus petite que la seconde(" + nb2 + ").");
    		break;
    
    		case total = 0 :
    			console.log ("Les deux valeurs (" + nb1 + ") sont identiques.");
    		break;
    
    		case total > 0 :
    			console.log ("La première valeure ("+ nb1 + ") est plus grande que la seconde(" + nb2 + ").");
    		break;
    	}
    

    Ici le souci, c'est que lorsque la valeur "totale" est égale à 0, le code fonctionne correctement et le message "Les deux valeurs (nb1) sont identiques" s'affiche bien.

    Mais lorsque l'on rentre dans l'un des deux autres cas, ça ne fonctionne pas. J'ai posé un "espion" pour voir la valeur de "total" et cette dernière reste bloqué à 0 sans afficher de message lorsque l'opération "totale" = (nb1-nb2) < ou >0 

    Merci pour vos retours :). 

    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2018 à 8:52:15

      Salut

      ligne 12, tu n'utilises pas le bon signe de comparaison. ^^

      Essaie ça:

      case total == 0 :


      Pour rappel:

      - "=" sert à déclarer/initialiser une variable

      - "==" ou "===" à comparer des valeurs dans un if ou encore un switch comme dans ton cas

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2018 à 9:46:26

        Bonjour Yazushine,

        Effectivement VinceBlanches a raison il te faut == pour comparer, mais le code ne marchera pas quand même.

        La raison est simple, tu ne peux pas faire de conditionnel dans les case d'un switch.

        case total = 0 ne fonctionne pas, tu ne peux comparer la valeur que tu as mis dans le switch qu'à une valeur ou un type dans le case.

        Par exemple, case 0 ou case Number fonctionne.

        Pour que ça marche tu dois donc faire un if / else if à la place du switch / case.

        Et parce que je suis gentil, voilà le code ;)

        	var nb1 = Number(prompt("Entrer un premier nombre entier"));
        	var nb2 = Number(prompt("Entrer un deuxième et dernier nombre entier"));
        	var total = (nb1 - nb2);
        
        	if (total < 0) {
        		console.log("La première valeure ("+ nb1 + ") est plus petite que la seconde (" + nb2 + ").");
        	}
        
        	else if (total == 0) {
        		console.log("Les deux valeurs (" + nb1 + ") sont identiques.");
        	}
        
        	else if (total > 0) {
        		console.log("La première valeure ("+ nb1 + ") est plus grande que la seconde (" + nb2 + ").");
        	}



        -
        Edité par Neilérua 19 octobre 2018 à 10:36:25

        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2018 à 23:09:54

          Merci pour vos retours ! 

            Le tutoriel avait bien insisté sur le fait de ne pas confondre "=" et "=="/"===", je me suis fais avoir :).

          Pour ce qui est de ton explication Neilerua, merci pour la rédaction du code déjà :), si je comprends bien : la propriété switch ne permet pas de substituer la "valeur référence" posée entre parenthèse après la déclaration de la propriété switch avec une autre valeur et en déduire un résultat true/false, c'est bien ça ? 

          De ce que j'ai pu comprendre, la propriété switch permet d'évaluer de façon booléenne un "cas de scénario" en prenant ce que j'appelle la valeur référence (switch(valeur référence)), ex : La valeur référence est-elle égale à 0, supérieur à X, compris dans l'intervalle x;y... ? 

          Merci pour vos précisions :). 

          • Partager sur Facebook
          • Partager sur Twitter

          Problème [Comparaison de deux nombres] - JS

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown