2013-10-16 8 views
1

печатая следующие строки кода дает мне ошибки:Невозможно присвоить значения 3D массив символов

private char[][][] amino = new char[4][4][4]; 
amino[2][1][3], amino[2][1][1], amino[2][1][0], amino[2][1][2] = 'A'; 
amino[1][2][3], amino[1][2][1], amino[1][2][0], amino[1][2][2] = 'R'; 
amino[0][0][3], amino[0][0][1] = 'N'; 

jGrasp (в IDE, что я использую) дает мне ошибку говоря ']' expected.

Пробовал его в Eclipse, а также дал мне аналогичную ошибку. Что я делаю не так!

+2

Если вы хотите поместить несколько вещей в левой части задания таким образом, разделите их на знаки равенства, а не запятыми. –

+0

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

+0

^Вы имели в виду сказать «не может выполнять назначение вне метода», потому что я делаю это за пределами метода. – user1766889

ответ

5

Запятые между amino[2][1][3], amino[2][1][1],... неверны синтаксис Java. Попробуйте следующее:

amino[2][1][3] = amino[2][1][1] = amino[2][1][0] = amino[2][1][2] = 'A'; 
1

Вы не можете использовать переменные, подобные этому.

Вы можете использовать множественное объявление переменных того же типа с добавлением в них того же значения. Но есть несколько ограничений:

Вы можете сделать это:

int a = 3, b = 5; 

Но вы не можете сделать это позже:

 a = 1, b = 7; 

Например, это>

private char[][][] amino1, amino2, amino3 = new char[4][4][4]; 

Добавляет амино3 новый пустой массив из 4x4x4 и амино1 и амино2 остается неинициализированным.

+0

Однако это не дает значения 'a' и' b' значение '4' –

+0

Я пробовал его с одним полем за раз: > amino [2] [1] [3] = 'A' ; Все еще дает мне ту же ошибку. Я начинаю сомневаться в том, поддерживает ли Java даже 3D-массивы ... :( – user1766889

+0

@ user1766889 Весь код, который является * не *, должен иметь какое-либо объявление в теле метода. Вы назначены в методе? –

Смежные вопросы