我正在尝试创建一个for循环,并在每个循环中切换布尔值。
首先,我制作了100
个储物柜数组,每个人都被关闭了。
然后,在第一个循环中,我想打开所有储物柜,然后更改每个第二个储物柜的状态(2、4、6 ...等),依此类推,直到最后,它仅更改100th
储物柜的状态。
因此,如果它的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
}
}
}
}
答案 0 :(得分:1)
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 !)
然后有一些数组索引问题:new boolean[100]
会将100个布尔值设置为false,索引为0 .. 99。
答案 1 :(得分: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 = 1; i % 2 == 0 && i < lockers.length; i++) {
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] = 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]
}
}