Je suis coincé ici avec un problème de duch. Il y a 2 deux cases de saisie pour un montant et un taux d'intérêt (%). Si vous cliquez sur le bouton, la page affichera un aperçu du solde jusqu'à ce que le montant doive être doublé. Prenant un nombre simple pour l'exemple 10 - est le montant et 4 - est le taux d'intérêt de 4%. Le résultat doit donc s'arrêter sur un montant de 20.
<! DOCTYPE html> <html> <body> <br> <input type="text" id="inputB" value="10"><br> <input type="text" id="inputC" value="4"><br><br> <button id="button">Klik</button> <p> De ingevoerde resultaten: </p> <p id="result"></p> <script async src="oefin1.js"></script> </body> </html>
document.getElementById("button").onclick = loop;
var inputB = document.getElementById("inputB");
var inputC = document.getElementById("inputC");
var result = document.getElementById("result")
function loop() {
var s = inputB.value;
var r = inputC.value;
var doubleS = s * 2;
for (var i = 1; i <= doubleS; i++) {
s = ((r / 100 + 1) * s);
result.innerHTML += s + "<br>";
}
}
3 Réponses :
Le problème vient de vos limites de boucle for .
Cela va boucler doubleX nombre de fois: for (var i = 0; i
Cela bouclera jusqu'à ce que x dépasse doubleX : for (; x while : while (x
<input type="text" id="inputB" value="10"><br> <input type="text" id="inputC" value="4"><br><br> <button id="button">Klik</button> <p> De ingevoerde resultaten: </p> <p id="result"></p>
document.getElementById("button").onclick = loop;
var inputB = document.getElementById("inputB");
var inputC = document.getElementById("inputC");
var result = document.getElementById("result")
function loop() {
var s = inputB.value;
var r = inputC.value;
var doubleS = s * 2;
result.innerHTML = '';
while (s < doubleS) {
s = ((r / 100 + 1) * s);
result.innerHTML += s + "<br>";
}
}
J'ai ajouté result.innerHTML = '' , cela suffit. Cependant, notez que l'utilisation de innerHTML est une mauvaise pratique.
Le moyen le plus simple consiste simplement à utiliser une boucle for sans les mathématiques alambiquées avec s au milieu:
function loop() {
var s = inputB.value;
var r = inputC.value;
var doubleS = s * 2;
for (var i = s; i <= doubleS; i *= ((r / 100) + 1)) {
result.innerHTML += i + "<br>";
}
}
utilisez une boucle while et vérifiez si la valeur de s est supérieure ou égale à doubleS
<! DOCTYPE html> <html> <body> <br> <input type="text" id="inputB" value="10"><br> <input type="text" id="inputC" value="4"><br><br> <button id="button">Klik</button> <p> De ingevoerde resultaten: </p> <p id="result"></p> <script async src="oefin1.js"></script> </body> </html>
document.getElementById("button").onclick = loop;
var inputB = document.getElementById("inputB");
var inputC = document.getElementById("inputC");
var result = document.getElementById("result")
function loop() {
var s = inputB.value;
var r = inputC.value;
var doubleS = s * 2;
while(true) {
s = ((r / 100 + 1) * s);
result.innerHTML += s + "<br>";
if(s >= doubleS){
break
}
}
}
au tout début de la fonction de boucle, définissez result.innerhtml sur ""