【发布时间】:2018-06-24 20:32:23
【问题描述】:
我编写了以下 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 语句中声明了。我已经阅读了几个可以执行此操作的示例。这里出了什么问题,如何解决?
【问题讨论】:
-
你的内部循环永远不会被执行,因为 d
-
循环为空
for(...) /*nothing here */ ;- 删除末尾的分号。 whilewhile(..) ;也是如此,如果它是一个有效的 while -
男孩们,你在开始时跳过了无限循环 while (n
-
你有严重的语法问题。我建议您从一开始就开始学习 Java。 在 while/for 循环头之后放置分号,并且声明了一个空的
While方法,而不是使用while循环。 -
@Peter1982 你错过了问题中
While的大写W[:-)