java - 我的 for 循环出了什么问题?

标签 java arrays for-loop while-loop boolean

public class Lockers {

    public static void main(String[] args) {
        boolean[] lockers = new boolean[100];
        int num = 2;
        for(int a=0; a < 100; a++) {
            lockers[a] = true;
        }

        for(int num=1; num < 101; num++) {

            for(int i=1; i < 100; i = i+num) {
                if (lockers[i]) {
                lockers[i] = false;
                    }
                else {
                    lockers[i] = true;
                    }
        }}

        for(int i=0; i < 100; i++) {
            if (lockers[i]) {
                System.out.print("Opened");
                }
            else {
                System.out.print("Closed");
                }
        }

}}

这个程序出 self 的java学校教科书,其想法是现在有100个储物柜全部打开,从第二个储物柜开始,每隔两个储物柜关闭一次。 (2,4,6,8,10)然后在第二个储物柜重新开始,每个第三个储物柜都做同样的事情(打开一个关闭的储物柜,或关闭一个打开的储物柜)。现在我的第三个 for 循环似乎是我的问题,它由于某种原因无法运行,包含第二个 for 循环,因此当第三个 for 循环启动时,它会遍历每个第二个锁,然后返回到第二个 for 循环语句将“num”加 1 会经历第 3 个,然后是第 4 个,依此类推。我只想使用迄今为止在java和程序中学到的基本命令,所以请帮助我解决这个问题,而无需真正的高级编码。

问题是,当我运行程序时,第三个 for 循环是一个无限循环,我知道前两个循环运行良好,我在第二个 for 循环之后测试了它输出“num”和它像我想要的那样输出 2 到 100 的所有数字,但是循环在第三个 for 循环处是无限的,不输出任何其他内容

最佳答案

是不是很简单:

for(int i=0; i < 100; i = i++)

应该是:

for(int i=0; i < 100; i++)

关于java - 我的 for 循环出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27907342/

相关文章:

arrays - 如何在二维数组中查找元素的索引 - Swift

javascript - React/Javascript for 循环 - 当超过数组长度时从 idx 0 开始

javascript - 连接字符串并将某些数字更改为另一个数字

java - 如何防止在另一个线程的静态调用上创建对象副本

java - 将 InputStream 包装到非阻塞 ReadableByteChannel

java - Excel 不显示使用 Super CSV 创建的 CSV 文件中的变音字符

java - 我可以在文档签名文档中动态放置签名选项卡吗

php - 使用 PHP 将数组插入 MySQL DB

ruby - 按降序对字符串数组进行排序

javascript - 为什么类嵌入循环似乎遵循不同的分配规则?