我在我的程序中遇到了一个方法的问题,我设置的任务涉及在余额达到-500之后停止运行if语句,我试过如果(价格< buy&& ;余额> -500)和当前的一个,而(余额> -500)给出结果-594但预期结果是-495。
虽然如果我为while循环取出{}并休息一下;就在while()旁边,它只是通过junit测试运行,该测试使用主题类上的方法(使用观察者策略)来改变价格(在这种情况下,它将价格设置为0.99 7倍)。 从我的测试中,当前的解决方案给出了最接近的答案,但我要求帮助的部分是停止它,所以它不会超过-500标记。 “ 提前致谢,如果您希望我添加更多代码来提供帮助,请告诉我们
@Override
public double getBalance() {
System.out.println("balance " + price);
while(balance > -500)break;
if( price < buy ){
outcome = price * increment;
System.out.println("OUT " + outcome + " ");
}else if(price > sell && portfolio >= 100){
income = price * increment;
}
double total = income - outcome;
balance = balance + total;
}
return balance;
}
编辑 - 好吧我希望缩进它希望
答案 0 :(得分:1)
我认为问题是如果balance - total
在下一次迭代开始之前低于-500,则没有检查;使用当前代码执行此操作的最简单方法是:
double total = income - outcome;
if(balance + total >= -500) {
balance = balance + total;
} else {
break;
}