所以我有这段代码,但是我无法弄清楚以下内容:
为什么输出在99处停止?我知道我设置了boolean [100]并将其更改为101,但这没有用。
如何获取输出以打印“ Locker x is open”或“ Locker x is closed”?我知道我必须以某种方式将布尔true
分配给打开,将false
分配给关闭。
请帮助谢谢!
public class lockerPuzzle{
public static void main(String[] args){
boolean[] lockers = new boolean[100];
for(int i = 1; i < lockers.length; i++){
for (int j = i; j < lockers.length; j+=i){
if (lockers[j] == false){
lockers[j] = true;
}
else{
lockers[j] = false;
}
}
}
for(int i = 1; i <lockers.length; i++){
System.out.println(lockers[i] + " " + i);
}
}
}
答案 0 :(得分:1)
您应该从索引1开始,而应该从索引0开始。
1-99(99个元素)
0-99(100个元素)
float alpha = texture2D(text, TexCoords).a;
gl_FragColor = vec4(1.0, 1.0, 1.0, alpha) * color;
您可以检查布尔值的真值并根据其值打印一些文本:
public static void main(String[] args){
boolean[] lockers = new boolean[100];
for(int i = 0; i < lockers.length; i++){
for (int j = i; j < lockers.length; j+=i){
if (lockers[j] == false){
lockers[j] = true;
}
else{
lockers[j] = false;
}
}
}
for(int i = 0; i <lockers.length; i++){
System.out.println(lockers[i] + " " + i);
}
}
注意:使用更多变量或三元运算符可以使此操作更为简洁,但这对于新程序员来说确实如此。祝你好运。
答案 1 :(得分:0)
您从1开始索引,它将跳过数组中的第一项。我已经简化了您的代码,这里是代码,您真的不需要那些if语句
public static void main(String[] args){
boolean[] lockers = new boolean[100];
for(int i = 0; i < lockers.length; i++){
for (int j = i; j < lockers.length; j+=i){
lockers[j] = !lockers[j];
}
}
for(int i = 1; i <lockers.length; i++){
System.out.println(lockers[i] + " " + i);
}
}