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