累积值-java-简单的问题

时间:2011-02-14 16:17:37

标签: java variables store

一个简单的问题。我需要在验证条件时对一个值求和,所以我有这个代码

private int sum;
private int sum1;
private int sum2;
private int sum3;

public int pontuationOfplayers() {
    if (winner() == 0) {
        return sum += 20;
    }
    else if (winner()==1) {
        return sum1 += 20;
    }
    else if (winner() ==2) {
        return sum2 += 20;
}
    else
        return sum3 += 20;
    }

我遇到的问题是当调用方法时它总是以0开始,所以结果必须是20,40,60,但是由于新的初始化总是20。

我该如何解决?比如存储变量的值

谢谢!

脚本编辑

5 个答案:

答案 0 :(得分:2)

您可能希望将总和设为class member,例如:

private int sum = 0;

public int pontuationOfplayers() {
    if (winner() == 0) {
        System.out.println("aqui");
        int value0 = 0;
        return sum += value0+=20;
    }

    else {
        System.out.println("aquiii");
        int value3 = 0;
        return sum += value3+=20;
    }
}

根据您的更新,我建议您这样做:

private int sum[] = new int[4];

public int pontuationOfplayers() {
    // (assuming winner() returns 3 for the final case)
    return sum[winner()] += 20;
}

答案 1 :(得分:1)

sum应该是该类的成员,因此定义

private int sum = 0;

在课堂内(但在方法之外)。然后它保存在类的实例中,在该实例的生命周期内存在,并且可以通过类中的方法进行修改。

您当前定义的内容仅在方法调用的生命周期内存在,并且在退出该方法后将立即超出范围。

答案 2 :(得分:1)

将sum作为类的实例变量。目前它是一个局部变量,因此它是按方法调用初始化的。

答案 3 :(得分:1)

如果多次调用并且您想要保持总和,则需要在此方法之外创建和存储总和值。将它存储在类变量或调用pontuationOfplayers()方法的方法中的局部变量中。

答案 4 :(得分:1)

虽然其他答案可以解决您的问题,但它们并没有解决导致问题的原因:您刚刚开始学习编程。

阅读有关Java,Java类和Java OOP(面向对象编程)的初学者教程。例如,您可以从这个问题开始:https://stackoverflow.com/questions/1168919/java-tutorials-for-beginning-programmer

快乐的编码!