Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用1个数组实现2个for循环程序_Java - Fatal编程技术网

Java 使用1个数组实现2个for循环程序

Java 使用1个数组实现2个for循环程序,java,Java,我正在尝试制作一个程序,每次计数2,它都会将值更改为“打开”或“1” 1-2-3-4-5-6-7-8-9-10 0-1-0-1-0-1-0-1-1**类似这样的**然后每三次计数,它就会变成Open或1 但是如果盒子已经打开或1。它应该关闭或0 以此类推,最多150个计数 我的问题是我无法将输出显示到一个数组中。如果它是另一个数组,我也可以这样做。帮助 int[] box = new int [150]; int b = 0; for (a = 1; a < box.length;

我正在尝试制作一个程序,每次计数2,它都会将值更改为“打开”或“1”

1-2-3-4-5-6-7-8-9-10

0-1-0-1-0-1-0-1-1**类似这样的**然后每三次计数,它就会变成Open或1

但是如果盒子已经打开或1。它应该关闭或0

以此类推,最多150个计数

我的问题是我无法将输出显示到一个数组中。如果它是另一个数组,我也可以这样做。帮助

int[] box = new int [150];
int b = 0;    
for (a = 1; a < box.length; a++) {
    if (a % 2 == 0) {
        box[b] = 1;
    }    
    else {
        box[b] = 0;
    }
}
for (int c = 1; c < box.length; c++) {
    if (c % 3 == 0) {
        if (box[b] == 1) {
            box[b] = 0;
        }
        else {
            box[b] = 1;
        }
    }
    else {
        box[b] = 0;
    }
    System.out.print(box[b]); //putting the result here only result in 001001001;
}
/*System.out.print(box[b]); -- Putting it outside results in just zero. 
如何将两个for循环组合到一个数组中?我希望这对你们大家都有意义。只要使用for循环和数组,另一种方法也可以。 当两者同时存在时,输出程序应该是0111011101类似的东西

这是我现在做的第二个程序,请检查,因为我假设在程序执行后添加所有0和所有1,我只想知道如何添加它。将它放入循环将循环150次

谢谢,希望你能理解这个问题有很多问题,我很困惑

你在a上迭代,然后在c上迭代,但分配给框[b]。b保持为0,因此您将继续指定给框[0]。您应该分配给方框[a]和方框[c]


此外,应该从0而不是1开始for循环。

您只需要一个循环。问题只在于创造正确的条件

int box[]=new int [150];
for (int i=1; i< box.length+1; i++) {
    boolean condition = i % 2 == 0 || i % 3 == 0;
    box[i-1] = condition ? 1 : 0;
    System.out.print(box[i-1]);
}
该条件检查索引是被2除还是被3除。

您正在迭代a和c,但正在分配框[b]。因为b仍然为0,所以每次都会将1或0指定给数组框[0]中的第一个位置。您应该使用迭代器框[a]和框[c]为数组编制索引,以便每次都引用数组中的不同位置

此外,您每次都要遍历整个数组。另一种方法是跳过数组中不需要的索引,例如:

for(a=0;a<box.length;a = a + 2)
    box[a]=1;

我想你应该解释一下他的错误,不要给他写密码。另外,我不明白为什么要将一个初始化为1而不是0。我从1开始简化条件表达式。当然,最好从0开始。但他希望,如果索引是2的倍数,它将被设置为1,而不是如果不是。此外,您的代码不正确,因为如果数字是2和3的倍数,则应将其设置为0。| |是“或”,但不是“异或”。因此,对于6%2=0和%3=0,条件将为真。如何??什么你想让我帮你做密码吗?我没说我会这么做,我是来帮你的,不是来帮你的。但我将向您展示如何打印数组编辑
for(a=0;a<box.length;a = a + 2)
    box[a]=1;
for (i=0;i < box.length;i++)
{
    System.out.print(box[i]);
}