如何让这个循环正确停止并显示价格总和?

时间:2015-11-30 22:40:36

标签: javascript

var sum = 0;
var Discount = 0;
var afterDiscount = 0;
var Price;
while (true) {
    Price = (prompt("Please enter a Price or -1 to STOP"));
    if (Price === -1)
    sum=sum+Price;
if (Price <= 50) {
            alert(Price);
        } else if (Price > 50 && Price <= 100) {
            alert(Price-Price*.10);

        } else if (Price > 100) {
            alert(Price-Price*.20);

        }
}
alert(sum);

我需要知道如何让循环正确停止并将总和输出为警告

4 个答案:

答案 0 :(得分:1)

您可以(并且很可能必须)使用break;退出循环。 像:

if (price == -1) {
  break;
}

答案 1 :(得分:1)

您可以在没有循环的情况下提示。完全删除while

答案 2 :(得分:1)

您的代码是无限循环:

while (true) {
    ...
}

当你得到-1时,你可以突破循环;请考虑以下事项:

if (Price === -1){
    break;
}

退出循环后,您现在可以按照自己的意愿处理sum。在您的示例中,您执行此操作:

alert(sum);

现在,在循环退出后,这将按预期工作。

注意:

要让sum正确增加其价值,请不要忘记将prompt结果投放到int,因为prompt始终会返回string 1}}。请考虑以下问题:

Price = parseInt(prompt("Please enter a Price or -1 to STOP"));
        ^^^^^^^^

答案 3 :(得分:0)

<html>
<body>
<script>

var sum   = 0,
    Price = 0,
    loop  = true;

while ( loop ) {
    console.log( 'Suma: ' + sum );

    Price = (prompt( "Please enter a Price or -1 to STOP" ));


    if ( Price == -1 ) {
        //sum--;
        loop = false;

    } else {
        sum = sum + Number(Price);
    }


    if (Price <= 50) {
        alert(Price);

    } else if (Price > 50 && Price <= 100) {
        alert(Price-Price*.10);

    } else if (Price > 100) {
        alert(Price-Price*.20);

    }
}

alert(sum);
</script>
</body>
</html>