在Java中,如何初始化一个数组,其中偶数列或行中的元素为0,奇数列或行中的元素为1?

在Java中,如何初始化一个数组,其中偶数列或行中的元素为0,奇数列或行中的元素为1?,java,arrays,2d,Java,Arrays,2d,我正在做一个作业,我需要有两个一维数组,将它们发送到另一个方法,然后制作一个二维数组。然后,我必须将数组传递回主方法,所有这些都已完成。现在,我必须使用for循环打印出这个二维数组,使偶数行或列中的所有元素为0,奇数行或列中的所有元素为1。我的代码打印所有0。我的代码和输出如下 numRows和numcolumn是我用来制作奇偶的数组 您在现有循环中不必要地迭代两个索引,这会导致每个值都设置为零,因为您正在使用最后一个值更新每个索引 您只需要最外层的两个环。您可以简化代码,如下所示: for(i

我正在做一个作业,我需要有两个一维数组,将它们发送到另一个方法,然后制作一个二维数组。然后,我必须将数组传递回主方法,所有这些都已完成。现在,我必须使用for循环打印出这个二维数组,使偶数行或列中的所有元素为0,奇数行或列中的所有元素为1。我的代码打印所有0。我的代码和输出如下

numRows和numcolumn是我用来制作奇偶的数组


您在现有循环中不必要地迭代两个索引,这会导致每个值都设置为零,因为您正在使用最后一个值更新每个索引

您只需要最外层的两个环。您可以简化代码,如下所示:

for(int j = 0; j < numColumns.length; j++)
    {

        for(int i = 0; i < numRows.length; i++)
        {

            oddEven[j][i] = (j%2!=0&&i%2!=0)?1:0;

            System.out.print(oddEven[j][i] + " ");

        }
        System.out.println();
    }   

写Odd偶数[j][i]=i%2*j%2

您描述的结果和示例不匹配。您的意思是说行和列索引都为偶数的所有值都应该是一个吗?另外,如果您立即写入输出,那么数组的意义是什么?我使用a和b的原因是尝试查找偶数列和奇数列,但失败了。另外,我刚刚运行了您的代码,它与应该输出的代码不匹配,尽管它有点类似。不需要a和b。输出有什么问题吗?您的输出是10101新行00000新行10101新行00000,当它应该是00000新行01010新行00000新行01010对不起,wierd设置。那么1和0是否正好颠倒了?如果是,交换三元运算符中的1和0。请参阅我对答案的最后一次编辑;更新后的代码应该可以正常工作。我的错是,我认为这些代码应该是公平的,而不是赔率。我会编辑我的答案。我不明白那会有什么用。你能详细说明一下吗?而且,我必须使用for循环来打印它。首先,只有当I和j都是奇数时,它们的mod运算都是1,1*1=1。否则,其中一个或两者都将为0,结果为0。第二,写两个for循环,一个遍历i,另一个遍历j,并将这行放在两个for循环的核心。

0 0 0 0 0
0 1 0 1 0
0 0 0 0 0 
0 1 0 1 0

for(int j = 0; j < numColumns.length; j++)
    {

        for(int i = 0; i < numRows.length; i++)
        {

            oddEven[j][i] = (j%2!=0&&i%2!=0)?1:0;

            System.out.print(oddEven[j][i] + " ");

        }
        System.out.println();
    }   
for(int j = 0; j < numColumns.length; j++)
    {

        for(int i = 0; i < numRows.length; i++)
        {
            if(j%2!=0&&i%2!=0){
                oddEven[j][i]=1;
            }
            else{
                oddEven[j][i]=0;
            }

            System.out.print(oddEven[j][i] + " ");

        }
        System.out.println();
    }