将值设置为零

时间:2016-11-29 19:50:23

标签: java

好的,所以在我的cs类中,我们有一个赋值,要求我们返回一个值,然后将其设置为零。我不知道如何在不使用辅助变量(这将破坏要求)的情况下做到这一点,所以我将不胜感激。这是确切的要求。

"有一个use()方法,它返回points字段中包含的值。它还将点字段重置为零。您将不得不考虑此处的操作顺序,以使其正常工作。"

package Game;

import java.util.Random;

public class HealthPotion 
{
    private int points;
    boolean Haspotion;
    HealthPotion()
    {
        Random num1 = new Random();
        int num = num1.nextInt(10)+1;
        points=num*10;
    }
    public int Use()
    {
        return points;
    }
    public int getPoints() 
    {
        return points;
    }
}

4 个答案:

答案 0 :(得分:3)

如果没有滥用最后一个块,那是不可能的,即

try {
    return points;
} finally {
    points = 0;
}

然而,很难相信这会是他们想要的,因为写这样的代码并不是一个好主意。

答案 1 :(得分:0)

包括这样的setter方法。

public void setValue(){
this.points=0;
}

获得值后调用此方法。

答案 2 :(得分:0)

这个怎么样?

public int Use() 
    {
        int tmp =  points;
        points = 0;
        return tmp;
    }

它有局限性,特别是在此方法执行时,如果points可由其他线程更改。但是,如果您在单线程环境中工作,这应该没问题。

答案 3 :(得分:0)

这应该有效

int points = 5;

public void test(){
    System.out.println(use() +" " + points);

}

private int use(){
    return points - (points = 0);
}

返回5 0