我想要用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()等中的''非法开始表达''。
编辑:除了额外或缺少(,{,是否写得正确?你会建议其他方式吗?
当编译器在代码中发现不适当的语句时,illegal start of expression error
是编译时错误。 Java编译器,javac
从上到下,从左到右编译源代码,当它在表达式的开头看到不合适的东西时,它会抛出“非法开始表达”错误。它通常发生在)
或{
.Better使用IDE
为此。
正如你的帖子上的评论提到,)
有一个额外的if (matrix[i][j])!=null)
为你的第二个问题尝试
Integer[][] matrix = null;
int[][] array = MoreObjects.firstNonNull(matrix, 0);