【发布时间】:2017-11-23 13:46:20
【问题描述】:
所以我写了这个小程序,它应该检查一个数字是否是质数,如果是的话,应该将它添加到一个数组列表中。问题是它只是添加数字 3 然后停止。有人可以解释一下为什么会这样吗?
import java.util.ArrayList;
public class main{
public static void main(String args[]){
ArrayList Primzahlen=new ArrayList();
int current=1;
boolean prim=true;
for(int a=0;a<100;a++){
for(int b=2;b<current;b++){
if(current%b==0){
prim=false;
}
if(b==current-1){
if(prim==true){
Primzahlen.add(current);
}
}
}
current++;
}
System.out.println(Primzahlen);
}
}
【问题讨论】:
-
您应该尝试在调试器中单步执行您的代码。
-
你设置了
prim=falseifcurrent%b==0但你再也没有将它设置为true。 -
谢谢。我想我不应该错过这么明显的错误。
-
犯“愚蠢”的错误是正常的。但是你需要学习如何通过调试来识别它们。你不能永远依赖别人为你找出错误。
-
将
boolean prim=true;移到内部循环之前。
标签: java if-statement arraylist boolean primes