2015-04-20 3 views
-4

Я хочу отображать несколько массивов.Проблемы с отображением нескольких массивов

public class apples { 
    public static void main(String[] args){ 
     int Tabela_Nr1[][] = {{8,9,10,11}, {12,13,14,15}}; 
     int Tabela_Nr2[][] = {{30,31,32,33}, {43},{4,5,6,}}; 

     System.out.println("To jest pierwsza tabela: "); 
     wyswietl(Tabela_Nr1); 

     System.out.println("To jest druga tabela: "); 
     wyswietl(Tabela_Nr2); 
    } 

    public static void wyswietl(int x [][]){ 
     for (int row = 0; row < x.length; row++){ 
      for(int counter = 0; counter < x[row].length; counter++); 
       System.out.print(x[row][counter] + "\t"); 
     } 
     System.out.println(); 
    } 
} 

Debugger говорит мне, что переменная счетчик не объявлять, но это в «для» петли ... Что такое Потому что проблемы?

консоль:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
counter cannot be resolved to a variable 

at apples.wyswietl(apples.java:15) 
at apples.main(apples.java:8) 

ответ

4

Проблема является дополнительным пол двоеточия:

for (int row=0;row<x.length;row++){ 
    for(int counter=0;counter<x[row].length;counter++); //<-- here 
     System.out.print(x[row][counter]+"\t"); 

Это пол двоеточия конца внутреннего цикла, что означает, что оператор печати вне цикла, где counter неизвестно ,

Я думаю, что ваш System.out.println(); также ошибочно размещен. Вы, вероятно, хотите, чтобы поместить его после каждой строки:

public static void wyswietl(int x[][]){ 
    for (int row=0;row<x.length;row++) { 
     for(int counter=0;counter<x[row].length;counter++) { 
      System.out.print(x[row][counter]+"\t"); 
     } 
     System.out.println(); 
    }  
} 
2

for(int counter=0;counter<x[row].length;counter++); -> удалить ;, и он будет работать нормально :)

BTW вы также можете посмотреть в ->Arrays.deepToString(), который отображает многомерных массивов.

+1

Спасибо, мой плохой. Глупая ошибка –