我编写了以下Java试图查找小于1000的素数:
public class primes {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("2");
int n=2;
While (n<1000);
{
for(int d = 2; d<n; d++); //if d|n abort divisors loop and try next number
{
if (n%d == 0){ //if d|n try next number
n++;
break;
}
if (d>(n/2)){ //if there are no divisors up to n/2 n is prime, print n then try next number
System.out.println(n);
n++;
break;
}
d++; //try next divisor
}
}
}
private static void While(boolean b) {
// TODO Auto-generated method stub
}
}
每次在内部循环中调用d而不将其声明为变量时,我都会遇到错误。但是我在for语句中声明了。我读了几个示例,您可以在其中执行此操作。这是怎么了?如何解决?
答案 0 :(得分:0)
这是您的更正代码(包含在main(String [] args中,而不是在类中):
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("2");
int n=2;
while (n<1000)
{
for(int d = 2; d<n; d++) //if d|n abort divisors loop and try next number
{
if (n%d == 0){ //if d|n try next number
break;
}
if (d>(n/2)){
//if there are no divisors up to n/2 n is prime, print n
//then try next number
System.out.println(n);
n++;
break;
}
}
n++;
}
}
但是,您需要学习(或重新学习)该语言。在while和for循环之后,您用SEMICOLONS绊倒了我几分钟。我还发现了更多的代码错误。我相信您可以编写良好的代码,但是您需要首先学习Java的基础知识。