为了账号安全,请及时绑定邮箱和手机立即绑定

For循环,切换布尔值

For循环,切换布尔值

守着一只汪 2022-05-21 20:14:31
我正在尝试创建一个 for 循环并在每个循环中切换布尔值。首先,我做了一系列100储物柜,每个人都关着。然后,在第一个循环中,我想打开所有的储物柜,然后改变每隔一个储物柜的状态(2,4,6...等),依此类推,直到最后,它只改变100th储物柜 的状态。因此,如果它的假(锁定)它应该更改为真,如果它的真(打开)相反。问题是,我不完全确定如何更改状态,我期待您的帮助。请提出任何解决方案    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            }        }    }}
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

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。


查看完整回答
反对 回复 2022-05-21
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

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]

    }

}


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信