Способ установить следующий элемент массива как новое значение переменной? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть массив алфавита и я говорю, что если у пользователя есть буква A, то при использовании этого метода буква пользователя изменится с A на B.

public class Letter {
    private char letter;

    public Letter(){
        letter = 'A';
    }

public char volgende(){
        char[] alfabet = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
        for (int i=0; i <= alfabet.length-1 ; i++) {
            if (alfabet[i] == letter){
                letter = alfabet[i++];
            }
        }
        System.out.println("Nieuwe letter is " + letter);
        return letter;
    }

Я ожидал, что этот код превратит букву A по умолчанию в B, но это не так. Я попытался заменить alfabet [i ++] на символ 'B', но это работает, поэтому я не знаю, почему alfabet [i ++] не сработает, поскольку это следующий элемент в массиве.

1 Ответ

2 голосов
/ 26 марта 2019

Вы используете оператор пост-приращения.Вам необходимо использовать оператор предварительного приращения, например,

letter = alfabet[++i]

. Кстати, это буквенный алфавит, и имейте в виду, что Z приведет к ошибке IndexOutOfBoundsException, поскольку она является последнейиндекс.

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