2017-10-21 63 views
0

Je suis en train d'apprendre Javascript dans une école de développeur, nous avons une calculatrice à faire avec seulement html, css et javascript.Javascript var affiche bien dans la console, pas dans html

J'ai presque terminé, sauf que j'ai un problème et que je ne trouve pas la solution.

J'ai cette fonction

function calcul(operateur){ // fonction du calcul et affichage du résultat 
 
    var lcd = document.getElementById("lcd"); 
 
    switch (operateur){ 
 
     case "+" : 
 
      result = Number(n2) + Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break; 
 
     case "-" : 
 
      result = Number(n2) - Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "/" : 
 
      result = Number(n2)/Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "*" : 
 
      result = Number(n2) * Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break; 
 
    } // résultat affiché, remise à zéro des variables en cas de nouveau calcul par l'utilisateur

Très simple, il est tout simplement un calcul de 2 vars affiche le résultat dans un div dans mon fichier html.

Mon problème est le suivant: le résultat est correct lorsqu'il est affiché dans la console, la ligne juste après l'affiche dans innerHTML, et il affiche toujours 0 ... :( J'ai d'autres fonctions pour afficher les valeurs dans le même innerHTML et cela fonctionne presque parfaitement bien, donc je suis coincé après des heures d'essayer de trouver pourquoi cela ne fonctionne pas comme prévu:/

Pages html, css et javascript complètes (respectivement nommées index.html, BSoverload.css et script.js) sont visibles dans cette page Github https://github.com/Mikerhinos/Calc, désolé les commentaires sont en français parce que j'étudie en France donc les professeurs sont aussi le français

Merci aux gens qui vont essayer de me aider :)

+1

[Vous n'avez pas de 'break;' à la bonne place] (https://github.com/Mikerhinos/Calc/blob/master/script.js#L39) pour votre cas '=' bloc d'instructions, donc il continue dans l'instruction case C –

+0

@trincot reset() réinitialise n1, n2 et l'opérateur var. – Mikerhinos

+0

@PatrickEvans Merde, merci c'était, je n'ai pas vu que j'ai raté une pause:/Heures perdues en lisant tout lol ... Comment puis-je marquer votre réponse comme ma solution et ajouter rep? Merci encore! :RÉ – Mikerhinos

Répondre

0

Plus tôt dans ce fichier que vous avez

 case "=" : // si l'utilisateur demande le résultat de l'opération 
      if ((operateur !== "") && (n1,n2 >= 0)){ // s'il y a bien une opération à faire, la transmettre à la fonction de calcul 
       calcul(operateur); 
      } 
      else { 
       break; // sinon ne pas tenir compte de la touche 
      } 

qui brise que dans la déclaration else, alors tombe dans le cas ci-dessous, à son tour la mise à 0

0

function calcul(operateur){ // fonction du calcul et affichage du résultat 
 
    var lcd = document.getElementById("lcd"); 
 
    var n1= 1; 
 
    var n2 = 2; 
 
    switch (operateur){ 
 
     case "+" : 
 
      result = Number(n2) + Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      break; 
 
     case "-" : 
 
      result = Number(n2) - Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "/" : 
 
      result = Number(n2)/Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "*" : 
 
      result = Number(n2) * Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break; 
 
    } 
 
    }// résultat affiché, remise à zéro des variables en cas de nouveau calcul par l'utilisateur
<p id="lcd"> </p> 
 

 
<button onclick="calcul('+')">Try it</button>

function calcul(operateur){ // fonction du calcul et affichage du résultat 
 
    var lcd = document.getElementById("lcd"); 
 
    switch (operateur){ 
 
     case "+" : 
 
      result = Number(n2) + Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break; 
 
     case "-" : 
 
      result = Number(n2) - Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "/" : 
 
      result = Number(n2)/Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break 
 
     case "*" : 
 
      result = Number(n2) * Number(n1); 
 
      console.log(result); 
 
      lcd.innerHTML = result; 
 
      reset(); 
 
      break; 
 
    } // résultat affiché, remise à zéro des variables en cas de nouveau calcul par l'utilisateur