我的 for 循环有什么问题?

What is wrong with my for-loop?

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");
                }
        }

}}

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

问题是,当我 运行 程序的第三个 for 循环是一个无限循环时,我知道前两个循环 运行 很好,我在第二个 for-循环我让它输出 "num" 并且它输出所有数字 2 到 100 就像我想要的但是然后循环在第三个 for 循环是无限的,不输出任何其他东西

我不太擅长java,所以我会告诉你我在 C# 方面的知识。

在最后一个 for 循环中,您正在编写 i=i++, 你需要写的是:i=i+1

这就是我的想法....尝试告诉我这是否适合你

是不是很简单:

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

应该是:

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