停止函数所以价格不低于 -500 Java

Stop function so price isnt less than -500 Java

我 运行 我的程序中的一个方法有问题,我设置的任务涉及在余额达到 -500 后停止来自 运行 的 if 语句,我已经尝试了 if(price < buy && balance > -500) 和当前的 while(balance > -500) 给了我 -594 的结果,但预期结果是 -495.

虽然如果我为 while 循环取出 {} 并放置一个中断;在 while() 旁边,它只是通过 junit 测试运行,该测试使用主题 class(使用观察者策略)上的方法来更改价格(在本例中,它将价格设置为 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;
        }

编辑 - 好吧我缩进了一点我希望

我认为问题在于没有检查 balance - total 是否会在下一次迭代开始之前低于 -500;使用当前代码执行此操作的最简单方法是:

double total = income - outcome;
if(balance + total >= -500) {
    balance = balance + total;
} else {
    break;
}