Javascript 如何使此循环正确停止并显示价格的总和? var总和=0; var贴现=0; var后贴现=0; var价格; while(true){ 价格=(提示(“请输入价格或-1停止”); 如果(价格==-1) 总和=总和+价格; 如果(价格50和100){ 警报(价格*.20); } } 警报(总和);

Javascript 如何使此循环正确停止并显示价格的总和? var总和=0; var贴现=0; var后贴现=0; var价格; while(true){ 价格=(提示(“请输入价格或-1停止”); 如果(价格==-1) 总和=总和+价格; 如果(价格50和100){ 警报(价格*.20); } } 警报(总和);,javascript,Javascript,我需要知道如何使循环正确停止并将总和作为警报输出您可以(而且很可能必须)使用中断以退出循环。 比如: 您可以在不使用循环的情况下进行提示。完全删除,同时删除。您的代码是一个无限循环: if (price == -1) { break; } 当你得到-1时,你可以打破这个循环;考虑以下事项: while (true) { ... } 一旦退出循环,您现在可以随心所欲地处理您的sum。在您的示例中,您可以执行以下操作: if (Price === -1){ break; }

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

您可以(而且很可能必须)使用
中断以退出循环。
比如:


您可以在不使用循环的情况下进行提示。完全删除
,同时删除

您的代码是一个无限循环:

if (price == -1) {
  break;
}
当你得到-1时,你可以打破这个循环;考虑以下事项:

while (true) {
    ...
}
一旦退出循环,您现在可以随心所欲地处理您的
sum
。在您的示例中,您可以执行以下操作:

if (Price === -1){
    break;
}
这将在循环退出后按预期工作

注意:

要使您的
总和
正确增加其值,请不要忘记将
提示符
结果转换为
整数
,因为
提示符
总是返回一个
字符串
。考虑下面的修复:

alert(sum);

var总和=0,
价格=0,
循环=真;
while(循环){
console.log('Suma:'+sum);
价格=(提示(“请输入价格或-1停止”);
如果(价格==-1){
//总和--;
循环=假;
}否则{
总和=总和+数量(价格);
}
如果(价格50和100){
警报(价格*.20);
}
}
警报(总和);

为什么需要while循环?它什么都没做……太棒了,所以我现在有时间去工作了。你能告诉我,我怎么可能在循环结束后发出警报,以显示最终成本的总和吗?@toteto以与以前一样的方式使用它。循环退出后,您的
警报(sum)
应该会触发-查看我的更新答案。我尝试过它一直给我输入值,就像我输入“45105,65”一样,它会吐出来04510565@Toteeto这是因为
prompt
总是返回字符串,因此,您的代码
sum=sum+Price
以字符串形式连接-请参阅我的更新答案。@toteto很高兴我能提供帮助!谢谢,这帮了我工作的忙=]只需要得到正确的输出总和,仍然可以得到350,这是基本投入的总和,不在折扣之后,但我很感激你的回答,伙计
alert(sum);
Price = parseInt(prompt("Please enter a Price or -1 to STOP"));
        ^^^^^^^^
<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>