Простая синтаксическая ошибка при использовании массивов в Java - PullRequest
0 голосов
/ 26 апреля 2019

Это проблема, с которой я столкнулся, и я не могу найти решение для нее.Похоже, мое затмение неправильно по этому поводу.Может кто-нибудь указать мне, почему это не скомпилируется?

Для такого простого куска кода у меня не так много вариантов, чтобы попробовать.

public class MapTest {

    int[][] map = new int[100][4]; // Syntax error on token ";", { expected after this token

    for(int i = 0; i < 101; i++) {
        map[i][1] = i;
        map[i][2] = i;
        map[i][3] = 1;
        map[i][4] = 0;
    }

} //Syntax error, insert "}" to complete ClassBody

Вся идея заключается в создании карты.У каждого массива int должны быть x и y, чтобы я потом мог сравнить его с координатами игроков + тип местности и тип npc.

1 Ответ

1 голос
/ 26 апреля 2019

Вы должны поместить свой код в тело метода или инициализатор.

public class MapTest {

    int[][] map = new int[100][4]; 

    {
        for(int i = 0; i < 101; i++) {
            map[i][1] = i;
            map[i][2] = i;
            map[i][3] = 1;
            map[i][4] = 0;
        }
    }

} 

Также в вашем массиве есть только 100 элементы с индексами 0 - 99, поэтому i < 101 приведет к ошибке. Замените его на i < 100.

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