2014-09-25 91 views
-5

我是編程初學者,希望有人能幫助我解決我的問題,請如何從方法返回數組?

public int [][]matrixSetup(String size, char i) throws IOException { 

    int size_num = Integer.parseInt(size); 

    if (size_num > 1 && size_num < 4) { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 


    System.out.println("input the value store them, they arrange as" + i + "11,"+ i+ "12," + i +"21,"+ i +"22 etc"); 

    for(int row = 0; row < size_num ; row++) 
     for(int col = 0 ; col < size_num ; col++){ 
      int [][]A = new int [size_num][size_num]; 
      String ipS = br.readLine();      //ipS = input String 
      int input_value = Integer.parseInt(ipS); 
      A[row][col] = input_value;   
     } 
    } else System.out.println("invalid matrix size!"); 
    return A; //How to return the matrix? 
} 
+1

它是一個java語言, – 2014-09-25 19:32:02

+1

您正在爲每個迭代的新數組。你應該在你的循環之外創建A. – eternay 2014-09-25 19:32:18

+2

瞭解[變量範圍](http://www.java-made-easy.com/variable-scope.html)。 – GriffeyDog 2014-09-25 19:33:18

回答

0

要回答你的問題「如何來回報矩陣」:你已經在做了正確的方式。從目前爲止的評論中可以看出,問題在於A的聲明。

A聲明和內部初始化for -loop:

int [][]A = new int [size_num][size_num]; 

因此其知名度僅限於for -loop。爲了使A可見你必須移動它的聲明中已經存在的return聲明:

int size_num = Integer.parseInt(size); 
int[][] A = new int[size_num][size_num]; 
if (size_num > 1 && size_num < 4) { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    for(int row = 0; row < size_num ; row++) 
    for(int col = 0 ; col < size_num ; col++){ 
     String ipS = br.readLine(); 
     int input_value = Integer.parseInt(ipS); 
     A[row][col] = input_value; 
    } 
} else { 
    System.out.println("invalid matrix size!"); 
} 
return A; 
+0

謝謝Stefan Freitag – 2014-09-25 20:08:58