当另一个变量递增时,如何递增变量?

时间:2012-10-30 19:57:13

标签: java loops increment

我正在尝试用Java创建一个程序,其中每次提取后的每月服务费将增加1美元(银行帐户计划)。我试图使用一个循环,但它只是卡住了。

代码:

    public void monthlyProcess() {
    int w = getWithdrawals();
    if (w > 4) {
        while(w > 4) {
            serCharge++;
        }
    }
    super.monthlyProcess();
    if(bal <= MIN_BAL) {
        status = false;
    }
}

谢谢!

4 个答案:

答案 0 :(得分:4)

在这里,这应该有用。

干杯!

public void monthlyProcess() {
    int w = getWithdrawals();
    if (w > 4) {
        serCharge += w - 4;
    }
    super.monthlyProcess();
    if(bal <= MIN_BAL) {
        status = false;
    }
}

答案 1 :(得分:3)

为什么不只是surcharge += w-4

编辑:

surcharge += Math.max(w-4,0)

答案 2 :(得分:3)

对我来说看起来像是一个不定式的循环,但总的来说我认为你不需要完全循环:

 public void monthlyProcess() {
    int w = getWithdrawals();
    if (w > 4) {
           while(w > 4) {
            serCharge++;
            w--;
         }

    }
    super.monthlyProcess();
    if(bal <= MIN_BAL) {
        status = false;
    }
}

应该这样做

你得到了不定式循环,因为你对w变量一无所知它总是大于4,所以循环永远不会破坏。如果确实如此,你最终会收取大量服务费,因为它会因为不定式循环而继续增加

“程序员正在吃点牛奶,他的妻子打电话给他说,'你可以拿出一些鸡蛋'......永远不会返回“

答案 3 :(得分:1)

到目前为止,其他答案正确地指出你完全摆脱while循环,但为了完整起见,这里有一个解决方案可以保持循环:

public void monthlyProcess() {
    int w = getWithdrawals();
    if (w > 4) {
        while(w > 4) {
            serCharge++;
            // make sure you update the value of w, 
            // otherwise you'll be stuck in an infinite loop!
            w--; 
        }
    }
    super.monthlyProcess();
    if(bal <= MIN_BAL) {
        status = false;
    }
}