变量在概率程序中不递增

Variable does not increment in probability program

我有三个 class。超级class probability、次级class Eating 和亚军class Person.

目标是某些方法在 for 循环中满足条件时 "triggered"。进食(方法dox)会增加可变重量。一旦 weight 大于 120,则 dox 被调用的概率 (int px) 降低,运动的概率 (py) 增加,直到 weight 低于阈值。

但是我的 int px 永远不会减少。为什么是这样?以下是我的降低概率方法和调用它们的触发器。

public void Trigger()
{
    if (weight >= 120)
    {
        dProb(px);
        dProb(pz);
        iProb(py);
    }
    if (weight <= 80)
    {
        dProb(py);
        iProb(px);
        iProb(pz);
    }


public void dProb(int p)
{
    p -= 5;
} 
public void iProb (int p)
{
    p += 5;
} 

p 是方法 dProblocal 变量,它与 iProb 中的 p 不同.这意味着 pxpzpy 不受影响(Java 通过 ,总是)。

当你进入该方法时,会创建一个临时变量,并会在你退出时立即销毁。

您应该让 p 成为 class 成员 (阅读更多 here),或者让方法 return结果,赋值给调用者,或者直接修改pxpypz.