Java数组问题。无法传递值

时间:2011-09-28 22:20:20

标签: java

温我有这段代码:

    import java.util.Scanner;
    import java.util.Arrays;
    public class Ex02 {

        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            int [] matrixSize = new int [4];
            System.out.println("Insert the values matrix (matrixA_lines,MatrixA_Rows,matrixB_lines,MatrixB_Rows");
            matrixSize = matrixFill(4);
            System.out.println(Arrays.toString(matrixSize));
        }

        public static int[] matrixFill(int sizeOne){
            int i;
            Scanner sc = new Scanner(System.in);

            int [] matrixTemp = new int [sizeOne];
            for (i = 0; i<sizeOne; i++){
                matrixTemp[i] = sc.nextInt();
            }

            return matrixTemp;
        }
    }

这一切都按预期工作。创建一维数组,填充1,2,3,4并且数组是打印的。问题是我想使用一个bidimentsional数组。我修改了代码并且它给出了错误。 这是修改后的代码:

import java.util.Scanner;
import java.util.Arrays;
public class Ex02 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int [][] matrixSize = new int [1][4];
        System.out.println("Insert the values matrix (matrixA_lines,MatrixA_Rows,matrixB_lines,MatrixB_Rows");
        matrixSize[][] = matrixFill(1,4);
        System.out.println(Arrays.deepToString(matrixSize));
    }

    public static int[][] matrixFill(int sizeOne, int sizeTwo){
        int i;
        Scanner sc = new Scanner(System.in);

        int [][] matrixTemp = new int [sizeOne][sizeTwo];
        for (i = 0; i<sizeOne; i++){
            matrixTemp[0][i] = sc.nextInt();
        }

        return matrixTemp[sizeOne][sizeTwo];
    }
}

第21行(matrixSize [] [] = matrixFill(1,4);)错误是:

cannot find symbol
symbol:   class matrixSize
location: class Ex02.Ex02

not a statement

';' expected

在第34行(返回matrixTemp [sizeOne] [sizeTwo];)错误是:

incompatible types
required: int[][]
found:    int

有人可以告诉我我做错了什么吗?刚开始学习Java。

此致

favolas

3 个答案:

答案 0 :(得分:2)

从matrixSize和返回值中删除[][]

matrixSize = matrixFill(1,4);

return matrixTemp;

答案 1 :(得分:0)

matrixSize[][] = matrixFill(1,4);

这不是[][]的有效位置。第一个例子说得对:

matrixSize = matrixFill(1,4);

答案 2 :(得分:0)

您在新代码的return语句中添加了“[sizeOne] [sizeTwo]”;你不需要这个,因为matrixTemp已经被声明为二维数组。你改变它的方式是在数组中发送一个元素。