停止功能,所以价格不低于-500 Java

时间:2015-03-14 12:55:36

标签: java loops terminate

我在我的程序中遇到了一个方法的问题,我设置的任务涉及在余额达到-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;
        }

编辑 - 好吧我希望缩进它希望

1 个答案:

答案 0 :(得分:1)

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

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