如何在Java中用math.random或null填充二维矩阵?

问题描述 投票:-3回答:1

我想要用null或随机数(0..50)填充矩阵。如果“random”为真(它可以是布尔值true或false,或者int 0或1无关紧要),那么它将使用最多50的随机数填充矩阵,否则,它将用null填充它。

public class array 
   {
    protected int N;
    protected int M;
    protected int [][] matrix;

    array(int n, int m, boolean random)
    {
        N=n;
        M=m;
        matrix=new int[n][m];

        if (random==true)

        {
                for(int i=0;i<N;i++)
                    for(int j=0;j<M;j++)
                        matrix[i][j]=null;
        }
        else
        {
            for(int i=0;i<N;i++)
                for(int j=0;j<M;j++)
                {
                   matrix[i][j]=(int)(Math.random()*50);
                }
        }
    }

然后,我想展示这个

    public void display() {
    System.out.println("[ Dimensions = " + this.N + " x " + this.M + " ]");
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
            if (matrix[i][j])!=null) 
            {
                System.out.print(" ["+matrix[i][j].displayString()+"]");
            }
            else
                {System.out.print("[null]");
           System.out.println("");
    }
    System.out.println("");
}
}

这是对的吗?我对if,display()等中的''非法开始表达''。

编辑:除了额外或缺少(,{,是否写得正确?你会建议其他方式吗?

java arrays matrix multidimensional-array random
1个回答
0
投票

当编译器在代码中发现不适当的语句时,illegal start of expression error是编译时错误。 Java编译器,javac从上到下,从左到右编译源代码,当它在表达式的开头看到不合适的东西时,它会抛出“非法开始表达”错误。它通常发生在){.Better使用IDE为此。

阅读更多:http://www.java67.com/2016/08/how-to-fix-illegal-start-of-expression-error-in-java.html#ixzz51jH58YDo

正如你的帖子上的评论提到,)有一个额外的if (matrix[i][j])!=null)

为你的第二个问题尝试

Integer[][] matrix = null;
int[][] array = MoreObjects.firstNonNull(matrix, 0);
© www.soinside.com 2019 - 2024. All rights reserved.