2015-11-05 99 views
1

我正在寫一個程序來做矩陣之間的加法,減法,除法和乘法運算。該程序隨機生成各種數字並將它們放入2維陣列(Matrix1和Matrix2)中。我有這部分,現在我想添加成癮的邏輯到當前填充的矩陣**,但我不知道如何**獲得循環中隨機生成的數字 - 循環外;操縱它們。獲取已經隨機生成矩陣的整數

我相信這是一個簡單的邏輯理解,但試圖訪問我的矩陣1 /矩陣2 [i] [j]以外的循環不起作用。

這裏是我的源代碼:


package matrix; 
import java.util.Scanner; 

public class Matrix { 
public static void main(String[] args) { 
    Scanner inputReader = new Scanner(System.in); 

    int par1, par2; 
    int count = 0; 

    System.out.print("Please enter the desired size of the first parameter of the matrix: "); 
    par1 = inputReader.nextInt(); 
    System.out.print("Please enter the desired size of the second parameter of the matrix: "); 
    par2 = inputReader.nextInt(); 

    int[][] matrix1 = new int[par1][par2]; 
    int[][] matrix2 = new int[par1][par2]; 

    System.out.println("Size of parameter 1 is: "+ "["+par1 + "]"); 
    System.out.println("Size of parameter 2 is: "+ "["+par2 + "]"); 
    System.out.println(); 
    System.out.println("Matrix 1: "); 

    for (int i = 0; i < par1; i++) { 
     for (int j = 0; j < par2; j++) { 
      matrix1[i][j] = (int)(Math.random()*10); 
      System.out.print(matrix1[i][j] + " "); 
      } 
     System.out.println(); 
     } 

    System.out.println(); 
    System.out.println("Matrix 2: "); 

    for (int i = 0; i < par1; i++) { 
     for (int j = 0; j < par2; j++) { 
      matrix2[i][j] = (int)(Math.random()*10); 
      System.out.print(matrix2[i][j] + " "); 
      } 
     System.out.println(); 
     } 

    System.out.println("The addition of the two matrices are: "); 
     System.out.println(matrix2[i][j]); <---THIS IS WHAT WILL NOT WORK 
    } 
} 

回答

1

i和j是迭代器。換句話說,它們唯一的功能是遍歷一個數組。你可以在一個循環內使用它們來索引一個數組,但除此之外,它們就是在循環中。迭代器填充數組後,它們仍然應該保存數字,所以,請使用。

System.out.println(Arrays.deepToString(matrix2)); 
+0

這是否允許我操縱二維數組中的某個位置?或者這只是表明它們是什麼? – colt

+1

@colt不允許你操縱數組中的任何東西。這就是循環所使用的。 –

+1

此外,你正在嘗試做requries函數(方法)的加法,減法等。除非你爲了你自己的知識這樣做,你應該看看番石榴,這將大大簡化過程或可以提供靈感創造你的自己的方法。 –

0

給出,其中聲明ij,其範圍僅限於各自for循環。因此你不能在這些循環之外使用它們。因此你的問題行代碼不會編譯。