我正在研究一个应该采用整数并且将其分解的类,就好像它是变化的,例如四分之一,镍币和硬币。
如果我拥有它想要它的理想方式,那就是让它继续计算不同的硬币,同时从金额中减去硬币的价值,直到金额为零,这应该结束循环。但由于某些原因,我遇到了无限循环。
while(amount >= 0){
if(amount >= 25){
quarters++;
amount -= 25;
}else if(amount >= 10){
dimes++;
amount -= 10;
}else if(amount >= 5){
nickels++;
amount -= 5;
}else if(amount >= 1){
pennies++;
amount--;
}
}
我甚至尝试在while循环结束时打印当前的金额值,看看我是否可以直观地看到可能导致问题的原因。它按照预期的方式工作,它变为零,但是while循环不会停止,即使它应该是。
现在我发现我可以通过将其更改为while(amount != 0)
来避免这个问题,但我想知道为什么while(amount >= 0)
会导致无限循环?
答案 0 :(得分:7)
改变这一点,
while(amount >= 0){
到
while(amount > 0){
如果金额为0,它将继续循环。