Перейти к содержимому

Welcome to 100NT форум администраторов игровых серверов
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

Переключатель чата Чат

Добро пожаловать в чат 100NT
Horus : (17 May 2012 - 01:17 PM) гуф умер, а форум отжил свое.
Inkognit0 : (17 May 2012 - 01:08 PM) форум умер?
Изменить размер окна сообщений

Ошибка При Компиляции

- - - - -

Сообщений в теме: 8

#1
NextLevel

    Продвинутый пользователь

  • Пользователи
  • 249 сообщений
  • ГородБрянск
Reputation: 30
При компиляции трехмерного массива:
class ThreeMassive {
	public static void main(String args[]) {
		int threeD[][][] = new int[3][4][5];
		int i, j, k;
		
		for(i = 0; i < 3; i++) {
			for(j = 0; j < 4; j++) {
				for(k = 0; k < 5; k++)
			}
			threeD[i][j][k] = i * j * k;
		}
		
		for(i = 0; i < 3; i++) {
			for(j = 0; j < 4; j++) {
				for(k = 0; k < 5; k++) {
					System.out.print(threeD[i][j][k] + " ");
				}
				System.out.println();
			}
			System.out.println();
		}
	}
}
выдает ошибку:
C:\Java\prgm\ThreeMassive>javac ThreeMassive.java
ThreeMassive.java:10: illegal start of expression
                        }
                        ^
ThreeMassive.java:24: reached end of file while parsing
}→
 ^
2 errors

Сообщение отредактировал NextLevel: 02 June 2011 - 17:49


#2
FreePrincip

    Продвинутый пользователь

  • Пользователи
  • 73 сообщений
  • ГородMoscow
Reputation: 18
                for(i = 0; i < 3; i++) {
                        for(j = 0; j < 4; j++) {
                                for(k = 0; k < 5; k++) <--- Блок цикла где?
                        }
                        threeD[i][j][k] = i * j * k;
                }

Жигули, бублики, вьюги, Водка, мороз, дураки и дороги. Или Бьюики, бургеры, Бруклин, обертка, Включай мозг и плати налоги.

#3
q®ºGЯamM()§

    NCore

  • Пользователи
  • 1329 сообщений
Reputation: 121
                for(i = 0; i < 3; i++) {
                        for(j = 0; j < 4; j++) {
                                for(k = 0; k < 5; k++)
                        }
                        threeD[i][j][k] = i * j * k;
                }
>>for(k = 0; k < 5; k++)
Пустой вложенный цикл (соблюдаем синтаксис, хотя бы ";" поставьте!), а так же не инициированная переменная "k".
Изображение Life is killing me!
My mediafire folder.

#4
FreePrincip

    Продвинутый пользователь

  • Пользователи
  • 73 сообщений
  • ГородMoscow
Reputation: 18

Цитата

>>for(k = 0; k < 5; k++)
Пустой вложенный цикл (соблюдаем синтаксис, хотя бы ";" поставьте!), а так же не инициированная переменная "k".
А так же "j"
Жигули, бублики, вьюги, Водка, мороз, дураки и дороги. Или Бьюики, бургеры, Бруклин, обертка, Включай мозг и плати налоги.

#5
FreePrincip

    Продвинутый пользователь

  • Пользователи
  • 73 сообщений
  • ГородMoscow
Reputation: 18
Рабочий вариант:
class ThreeMassive {
        public static void main(String args[]) {
                int threeD[][][] = new int[3][4][5];
                int i, j = 0, k = 0;
                
                for(i = 0; i < 3; i++) 
                        for(j = 0; j < 4; j++) {
                                for(k = 0; k < 5; k++)
                                {
                                    
                                }
                        }
                        threeD[i][j][k] = i * j * k;
                
                for(i = 0; i < 3; i++) {
                        for(j = 0; j < 4; j++) {
                                for(k = 0; k < 5; k++) {
                                        System.out.print(threeD[i][j][k] + " ");
                                }
                                System.out.print("");
                        }
                        System.out.print("");
                }
        }
}

Жигули, бублики, вьюги, Водка, мороз, дураки и дороги. Или Бьюики, бургеры, Бруклин, обертка, Включай мозг и плати налоги.

#6
NextLevel

    Продвинутый пользователь

  • Пользователи
  • 249 сообщений
  • ГородБрянск
Reputation: 30

Просмотр сообщенияFreePrincip (02 June 2011 - 17:52) писал:

Рабочий вариант:
class ThreeMassive {
    public static void main(String args[]) {
		int threeD[][][] = new int[3][4][5];
        int i, j = 0, k = 0;
                
        for(i = 0; i < 3; i++) {
            for(j = 0; j < 4; j++) {
                for(k = 0; k < 5; k++) {}
            }
            threeD[i][j][k] = i * j * k;
	}
                
        for(i = 0; i < 3; i++) {
            for(j = 0; j < 4; j++) {
                for(k = 0; k < 5; k++) {
                    System.out.print(threeD[i][j][k] + " ");
                }
                System.out.println("");
        }
            System.out.println("");
        }
    }
}
При вашем варианте, как и при моем измененным выдает:
C:\Java\prgm\ThreeMassive>java ThreeMassive
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
        at ThreeMassive.main(ThreeMassive.java:13)

Сообщение отредактировал NextLevel: 02 June 2011 - 18:01


#7
NextLevel

    Продвинутый пользователь

  • Пользователи
  • 249 сообщений
  • ГородБрянск
Reputation: 30
В общем, результат должен быть такой.
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12

0 0 0 0 0
0 2 4 6 8
0 4 8 12 16
0 6 12 18 24


#8
FreePrincip

    Продвинутый пользователь

  • Пользователи
  • 73 сообщений
  • ГородMoscow
Reputation: 18
Вот он путь решения:
class ThreeMassive {
    public static void main(String args[])
    {
        int i, j = 0, k = 0;
        int threeD[][][] = new int[3][4][5];

        for(i = 0; i < 3; i++)
        {
            for(j = 0; j < 4; j++)
            {
                for(k = 0; k < 5; k++)
                {
                    threeD[i][j][k] = i * j * k;
                }
            }
        }

        for(i = 0; i < 3; i++)
        {
            for(j = 0; j < 4; j++)
            {
                for(k = 0; k < 5; k++)
                {
                    System.out.print(threeD[i][j][k] + " ");
                }
                System.out.println();
            }
            System.out.println();
        }
    }
}

Выходные данные программы:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12

0 0 0 0 0
0 2 4 6 8
0 4 8 12 16
0 6 12 18 24

Сообщение отредактировал FreePrincip: 02 June 2011 - 18:12

Жигули, бублики, вьюги, Водка, мороз, дураки и дороги. Или Бьюики, бургеры, Бруклин, обертка, Включай мозг и плати налоги.

#9
NextLevel

    Продвинутый пользователь

  • Пользователи
  • 249 сообщений
  • ГородБрянск
Reputation: 30
Интернет сцуко рубят >.< Отрубаюсь моментами.
У меня получилось то же, только в таком варианте:
class ThreeMassive2 {
    public static void main(String args[]) {
		int threeD[][][] = new int[3][4][5];
        int i, j, k;
                
        for(i = 0; i < 3; i++)
            for(j = 0; j < 4; j++)
                for(k = 0; k < 5; k++)
            threeD[i][j][k] = i * j * k;
                
        for(i = 0; i < 3; i++) {
            for(j = 0; j < 4; j++) {
                for(k = 0; k < 5; k++)
                    System.out.print(threeD[i][j][k] + " ");
                System.out.println("");
            }
            System.out.println("");
        }
    }
}

P.S. Тему клоз, проблема решена выше.

Сообщение отредактировал NextLevel: 02 June 2011 - 18:48






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей