首页 > 解决方案 > 方法只返回一次值(Greenfoot)

问题描述

在我的代码中调用方法时遇到问题(调用正确的词吗?希望如此。)它将返回正确的变量,该变量是 0 到 10 之间的数字,但在循环中再次运行它后,它总是返回相同的数字,即使它应该返回的变量发生了变化。

我的代码:

public class Digit1 extends Digits
{    
    static int iam = 1;
    public void act() 
    {
        setImage(getDigit(iam) + ".png");
    }    
}

请注意,在 Greenfoot 中,每滴答声都会运行 act() (滴答声正确吗?它无论如何都会循环。)

我的方法不会返回正确的数字:

public int getDigit(int heis)
{
    if (heis > digits)
        return 10;
    else
    {            
        switch(heis)
        {
            case 1:
                return m1;                
            default:
                return 10;            
        }
    }
}

还有更多情况,但我的问题只涉及 heis = 1。m1 将是 0 - 9 之间的数字,随着代码运行随机变化。然而 getDigit(iam) 似乎只会返回代码开始运行时的样子。我究竟做错了什么?

编辑:所以我对 m1 的变化有点撒谎。它会但还不是正确的。现在它被设置为一个数字,并且一次向下计数 1。如果我将它设置为 5,getDigit(iam) 返回 5,但稍后当 m1 = 1 时,getDigit(iam) 仍然返回 5。

标签: javagreenfoot

解决方案


推荐阅读