累积值-java-简单问题

累积值-java-简单问题,java,variables,store,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 +=

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

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

我怎样才能解决这个问题?比如存储变量的值

谢谢


脚本:编辑

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

根据您的更新,我建议您:

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

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

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

根据您的更新,我建议您:

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

public int pontuationOfplayers() {
    // (assuming winner() returns 3 for the final case)
    return sum[winner()] += 20;
}
sum应该是类的一个成员,并因此定义

private int sum = 0;
在类内部,但在方法外部。然后,它被保存在类的实例中,在该实例的生命周期内存在,并且可以由类中的方法修改

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

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

private int sum = 0;
在类内部,但在方法外部。然后,它被保存在类的实例中,在该实例的生命周期内存在,并且可以由类中的方法修改


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

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

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

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

如果多次调用该方法,并且您希望维护该和,则需要在此方法之外创建和存储总和值。将其存储在调用PontuationOfflayers方法的方法中的类变量或局部变量中。

尽管其他答案解决了您的问题,但它们并没有解决问题的原因:您刚刚开始学习编程

阅读有关Java、Java类和Java OOP面向对象编程的初学者教程。例如,您可以从以下问题开始:


快乐编码

尽管其他答案可以解决您的问题,但它们并不能解决问题的起因:您刚刚开始学习编程

阅读有关Java、Java类和Java OOP面向对象编程的初学者教程。例如,您可以从以下问题开始:


快乐编码

返回和+=值0+=20;而else的变化非常聪明。请注意,我是一个Python程序员,我们不认为聪明是恭维;阅读:最好写得不那么复杂,更容易理解。如果你不熟悉范围重要的概念,请看一下这些链接:我不遵循编辑-它们现在不会重置为0,那么你能澄清问题所在吗?在更一般的情况下,看起来你想在数组中有一个类的四个实例,并调用数组元素的方法,该方法与获胜者编号匹配。是的,你是正确的,但是问题是如果我需要四个变量到四个玩家,但是我想SoYES你需要四个变量,但是你可能想考虑使用这个变量,因为如果语句返回sum+=value0+=20,您可以通过数字而不是一个大的块来访问它们;而else的变化非常聪明。请注意,我是一个Python程序员,我们不认为聪明是恭维;阅读:最好写得不那么复杂,更容易理解。如果你不熟悉范围重要的概念,请看一下这些链接:我不遵循编辑-它们现在不会重置为0,那么你能澄清问题所在吗?在更一般的情况下,看起来你想在数组中有一个类的四个实例,并调用数组元素的方法,该方法与获胜者编号匹配。是的,你是正确的,但是问题是如果我需要四个变量到四个玩家,但是我想SoYES你需要四个变量,但是你可能想考虑使用这个变量,因为您可以通过数字而不是大块if语句来访问它们。post edited:可以简化它或以不同的方式进行操作?因为您返回了总和,所以在调用该函数时也可以将现有总和传递给该函数,但从我在这里看到的情况来看,这确实像是一个示例,您希望sum成为成员。@Fei-我已经更新了答案,以说明现在如何简化它。后期编辑:可以简化它或以其他方式进行操作?因为您返回了sum,所以在调用该函数时,也可以将现有sum传递给该函数,但从我在这里看到的,这看起来真的像一个例子,你想要的总和
一名成员。@Fei-我已经更新了答案,以展示如何简化它。我也是葡萄牙人:谢谢回复。可以简化上面的代码吗?我编辑代码时使用了一个开关,而不是链接ifs。链接:-同样,总和+=20;回报金额;更容易阅读,避免潜在的错误!我也是葡萄牙人:谢谢你的回复。可以简化上面的代码吗?我编辑代码时使用了一个开关,而不是链接ifs。链接:-同样,总和+=20;回报金额;更容易阅读,避免潜在的错误!啊!几英里之外。更正。谢谢,多谢!几英里之外。更正。非常感谢。