Первый индекс 2D-массива увеличивается без какого-либо явного приращения

У меня есть цикл for, в котором я хочу увеличить второй индекс двумерного массива и хочу иметь статический первый индекс:

String[][] grid = new String[7][6];

inject(0);

public void inject(int column){
    for(int i=5;i>-1;i--){
        if(grid[column][i] == null){
            if(player.equals("red")){
                grid[column][i] = "red";
                System.out.println("column: " + column + " i: " + i);
                break;
            }
            if(player.equals("yellow")){
                grid[column][i] = "yellow";
                System.out.println("column: " + column + " i: " + i);
                break;
            }
        }
    }
}

Ожидаемый вывод консоли (если

grid[0][5]="yellow"; grid[0][4]="red";

):
колонка: 0 я: 5
колонка: 0 я: 4
колонка: 0 я: 3

Фактический выход:
колонка: 0 я: 3
колонка: 1 я: 5
колонка: 2 я: 5
колонка: 3 я: 5
колонка: 4 я: 5
колонка: 5 я: 5
колонка: 6 я: 5

Почему столбец увеличивается, у меня нет приращения для определенного столбца. Я только хочу проверить в одном столбце, что является последним "нулевым" индексом поля массива.

Вызов инъекции:

public void tasteReagieren(int key){
//Method of EngineAlpha to handle keyboard actions
    switch(key){
    case Taste._1: einwerfen(0);
    case Taste._2: einwerfen(1);
    case Taste._3: einwerfen(2);
    case Taste._4: einwerfen(3);
    case Taste._5: einwerfen(4);
    case Taste._6: einwerfen(5);
    case Taste._7: einwerfen(6);
    }
}

1 ответ

Решение

Вы должны реализовать break; после каждого case:

Другие вопросы по тегам