我的 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++)
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++)