每当我得到结果时,它应该显示 2x €50 或 2x €20,而不是 1x €50 1x €50。有人知道我应该改变什么才能得到这个吗?

问题描述 投票:0回答:1

这段代码应该根据总找零来计算我应该退还每张账单的多少钱。因此,当总找零额为 135 欧元时,应给出以下结果: 2x 50 欧元 1x 20 欧元 1x 10 欧元 1x 5 欧元

相反,我得到以下结果: 1x 50 欧元 1x 50 欧元 1x 20 欧元 1x 10 欧元 1x 5 欧元

这可能是一个非常简单的修复,但我现在只编码了一两个月,我似乎无法弄清楚。下面的代码是我现在所拥有的。

let wisselgeld = parseInt(process.argv[2], 10);
while (wisselgeld >= 5) {
    let aantal50 = 0;
    let aantal20 = 0;
    let aantal10 = 0;
    let aantal5 = 0;
    if (wisselgeld >= 50) {
        wisselgeld -= 50;
        aantal50++;
    } else if (wisselgeld < 50 && wisselgeld >= 20) {
        wisselgeld -= 20;
        aantal20++;
    } else if (wisselgeld < 20 && wisselgeld >= 10) {
        wisselgeld -= 10;
        aantal10++;
    } else if (wisselgeld < 10 && wisselgeld >= 5) {
        wisselgeld -= 5;
        aantal5++;
    }
    if (aantal5 > 0) {
        console.log(`${aantal5}x €5`);
    } if (aantal10 > 0) {
        console.log(`${aantal10}x €10`);
    } if (aantal20 > 0) {
        console.log(`${aantal20}x €20`);
    } if (aantal50 > 0) {
        console.log(`${aantal50}x €50`);
    }
}

我尝试在最后一个 if 语句中添加另一个条件,表示仅当 let wisselgeld 为 < 50 or < 20 etc. but then I get the following result: 1x €50 1x €20 1x €10 1x €5. So then I get a wrong result. Tried putting the 4 let variables outside the while loop but that didn't work either.

时才应记录到控制台
javascript if-statement while-loop console.log
1个回答
0
投票

您的代码的问题在于,变量

aantal50
aantal20
aantal10
aantal5
在 while 循环的每次迭代中都被重置为 0。这意味着每张账单的计数未正确累积。

要解决此问题,您应该在 while 循环之外声明这些变量。

let wisselgeld = parseInt(process.argv[2], 10);

let aantal50 = 0;
let aantal20 = 0;
let aantal10 = 0;
let aantal5 = 0;

while (wisselgeld >= 5) {
    if (wisselgeld >= 50) {
        wisselgeld -= 50;
        aantal50++;
    } else if (wisselgeld < 50 && wisselgeld >= 20) {
        wisselgeld -= 20;
        aantal20++;
    } else if (wisselgeld < 20 && wisselgeld >= 10) {
        wisselgeld -= 10;
        aantal10++;
    } else if (wisselgeld < 10 && wisselgeld >= 5) {
        wisselgeld -= 5;
        aantal5++;
    }
}

if (aantal5 > 0) {
    console.log(`${aantal5}x €5`);
} 
if (aantal10 > 0) {
    console.log(`${aantal10}x €10`);
} 
if (aantal20 > 0) {
    console.log(`${aantal20}x €20`);
} 
if (aantal50 > 0) {
    console.log(`${aantal50}x €50`);
}
© www.soinside.com 2019 - 2024. All rights reserved.