Накопленное значение -java - простой вопрос - PullRequest
1 голос
/ 14 февраля 2011

один простой вопрос.Мне нужно суммировать значение, когда условие проверено, поэтому у меня есть этот код

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 ]

2 голосов
/ 14 февраля 2011

Вы, вероятно, хотите сделать сумму члена класса , например:

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 голос
/ 14 февраля 2011

Хотя другие ответы решают вашу проблему, они не касаются того, что ее вызвало: вы только начинаете учиться программировать.

Прочитайте учебные пособия для начинающих по Java, классам Java и Java OOP (объектно-ориентированное программирование)).Например, вы можете начать с этого вопроса: https://stackoverflow.com/questions/1168919/java-tutorials-for-beginning-programmer

Счастливого кодирования!

1 голос
/ 14 февраля 2011

Значение суммы необходимо будет создать и сохранить вне этого метода, если оно вызывается несколько раз, и вы хотите сохранить сумму. Сохраните его в переменной класса или в локальной переменной в методе, который вызывает метод pontuationOfplayers ().

1 голос
/ 14 февраля 2011

сделать сумму переменной экземпляра вашего класса.в настоящее время это локальная переменная, и поэтому она инициализируется для каждого вызова метода.

1 голос
/ 14 февраля 2011

sum должен быть членом класса и определен таким образом

private int sum = 0;

внутри класса (но вне методов). Затем он сохраняется в экземпляре класса, существует в течение всего времени существования этого экземпляра и может быть изменен методами в классе.

То, что вы в настоящее время определили, существует только на время существования вызова метода и выйдет из области действия, как только вы выйдете из этого метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...