【问题标题】:How do I fill a 2d matrix with math.random or null in Java?如何在 Java 中用 math.random 或 null 填充二维矩阵?
【发布时间】:2017-12-19 17:26:35
【问题描述】:

我想用 null 或随机数 (0..50) 填充矩阵。 如果“随机”为真(它可以是布尔真或假,或者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("");
}
}

正确吗?我在 display() 等中的 if 中得到一个“非法的表达式开始”。

编辑:除了多余的或缺少的 (,{ ,它是否正确编写?您是否建议其他方式?

【问题讨论】:

  • 您在if (matrix[i][j])!=null) 行中有一个额外的)...

标签: java arrays matrix multidimensional-array random


【解决方案1】:

当编译器在代码中发现不适当的语句时,illegal start of expression error 是编译时错误。 Java 编译器javac 从上到下、从左到右编译您的源代码,当它在表达式的开头看到不合适的内容时,它会抛出“非法的表达式开头”错误。 它通常是由于){ 而发生的。最好使用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);

【讨论】:

  • 谢谢。我在我的代码中进行了编辑。但是,现在我得到了一个不兼容的类型,无法转换为 无法转换为 int,在 matrix[i][j]=null;
猜你喜欢
  • 2013-12-08
  • 2017-03-06
  • 2016-05-16
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
相关资源
最近更新 更多