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。
我该如何解决?比如存储变量的值
谢谢!
脚本编辑
答案 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
快乐的编码!