Java 对于循环,切换布尔值

Java 对于循环,切换布尔值,java,for-loop,boolean,Java,For Loop,Boolean,我试图创建一个for循环,并在每个循环中切换布尔值。 首先,我制作了一组100储物柜,每个储物柜都是关着的。 然后,在第一个循环中,我想打开所有的储物柜,然后改变每一个储物柜的状态(2,4,6…等等),直到最后,它只改变第100个储物柜的状态 因此,如果其为false(锁定),则应更改为true,如果其为true(打开),则相反。问题是,我不完全确定如何改变这个状态,我期待着你的帮助 请提出解决方案 public static void main(String[] args) {

我试图创建一个for循环,并在每个循环中切换布尔值。
首先,我制作了一组
100
储物柜,每个储物柜都是关着的。
然后,在第一个循环中,我想打开所有的储物柜,然后改变每一个储物柜的状态(2,4,6…等等),直到最后,它只改变第100个储物柜的状态

因此,如果其为false(锁定),则应更改为true,如果其为true(打开),则相反。问题是,我不完全确定如何改变这个状态,我期待着你的帮助

请提出解决方案

    public static void main(String[] args) {
    boolean[] lockers = new boolean[101];
    for (int i = 1; i < lockers.length; i++) {
        lockers[i] = false; 
        }
    for (int i = 1; i < lockers.length; i++) {
        lockers[i+i] = lockers[i+i] == true ? false : true;
        if(lockers[i] == true)
            System.out.print("o"); //open
        if(lockers[i] == false) {
            System.out.print("c"); //closed
            }
        }
    }
}
publicstaticvoidmain(字符串[]args){
布尔[]储物柜=新布尔[101];
对于(int i=1;i
公共静态void main(字符串[]args){
布尔值[]储物柜=新布尔值[100];
对于(int i=0;i

publicstaticvoidmain(字符串[]args){
布尔值[]储物柜=新布尔值[100];
对于(int i=0;i
或者,当您只想反转偶数字段的布尔值时

public static void main(String[] args) {
    boolean[] lockers = new boolean[100];
    for (int i = 0; i < lockers.length; i++) {
        lockers[i] = false; 
        }
    for (int i = 0; i < lockers.length; i=i+2) {
        lockers[i] = !lockers[i]
    }
}
publicstaticvoidmain(字符串[]args){
布尔值[]储物柜=新布尔值[100];
对于(int i=0;i
boolean[]储物柜=新的boolean[100];//都是假的
布尔值be=false;
对于(int i=0;i

还有一些数组索引问题:
new boolean[100]
将100个布尔值设置为false,索引为0。。99.

这是java吗?
储物柜[i]=!储物柜[i]
您在这里比较什么?在其他例子中也是如此。你是说
=
而不是
=
?是的。。。很抱歉改变了,好吧,干杯!现在我正试图改变每三个储物柜的状态,所以第三,第六,第九,第十二。。。第99位。之后每四、八、十二、十六,然后每五、十、十五。。。直到我到达最后一个循环,100个储物柜改变了状态。但我认为它已经可以这样做了,因为lockers.length是100,我每循环加1。
I%3==0
(模)可能有用。
public static void main(String[] args) {
    boolean[] lockers = new boolean[100];
    for (int i = 0; i < lockers.length; i++) {
        lockers[i] = false; 
        }
    for (int i = 0; i < lockers.length; i=i+2) {
        lockers[i] = true;
    }
}
public static void main(String[] args) {
    boolean[] lockers = new boolean[100];
    for (int i = 0; i < lockers.length; i++) {
        lockers[i] = false; 
        }
    for (int i = 0; i < lockers.length; i=i+2) {
        lockers[i] = !lockers[i]
    }
}
boolean[] lockers = new boolean[100]; // All are false
boolean be = false;
for (int i = 0; i < lockers.length; i++) {
    be = !be;
    lockers[i] = be;
    if (lockers[i]) {// Or if (be)
        System.out.print("o"); // open
    } else {
        System.out.print("c"); // closed
    }
}
System.out.println(); // Write the line out on the console.

Instead:      Use:
c == true     c
c == false    !c         (Not operator !)