在Javascript中使用while循环而不是for循环

时间:2020-04-30 08:36:52

标签: javascript html for-loop while-loop

在我的脚本中,我使用了for循环来计算一定金额的利息。我将循环设置为20次。现在,我尝试使用while循环来计算金额,直到余额翻倍。

var btn = document.getElementById('btn');
var startBalance = document.getElementById('input1');
var percentage = document.getElementById('input2');
var output = document.getElementById('result');

btn.onclick = showBalance;

function showBalance() {
    var factor = 1 + percentage.value / 100;
    var newBalance = +startBalance.value * factor;
    var result = "";

    for (var i = 0; i <= 10; i++) {
        result += "Year " + i + ": €";
        result += newBalance.toFixed(2) + "<br>";
        newBalance *= factor;
    }

    output.innerHTML = result;
}

在这种情况下,如何使用while循环?谢谢。

2 个答案:

答案 0 :(得分:2)

尝试一下

var btn = document.getElementById('btn');
var startBalance = document.getElementById('input1');
var percentage = document.getElementById('input2');
var output = document.getElementById('result');

btn.onclick = showBalance;

function showBalance() {
        var factor = 1 + percentage.value / 100;
        var startingBalance = startBalance.value;
        var newBalance =+ startingBalance * factor;
        var result = "";
        var i = 0;

   while (newBalance <= startingBalance*2) {
        result += "Year " + i + ": €";
        result += newBalance.toFixed(2) + "<br>";
        newBalance *= factor;
        i++;
    }

    output.innerHTML = result;
}

答案 1 :(得分:0)

您可以使用公式 factor years = 2 计算所需的年份,并通过while循环获取最终值。

var amount = 100,
    factor = 1.02,
    i = 0,
    years = Math.ceil(Math.log(2) / Math.log(factor));

while (i++ < years) amount *= factor;

console.log('years', Math.log(2) / Math.log(factor));
console.log('total', amount);

相关问题