变量无法解析为循环内的变量
variable cannot be resolved to variable inside loop
我写了以下内容 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语句中声明了in。我已经阅读了几个可以执行此操作的示例。这里有什么问题,如何解决?
这是您更正后的代码(包含在 main(String[] args) 中,而不是 class):
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 循环之后,你用你的分号让我难过了几分钟。我还发现了更多代码错误。我相信你可以很好地编码,但你需要先学习 Java 的基础知识。
我写了以下内容 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语句中声明了in。我已经阅读了几个可以执行此操作的示例。这里有什么问题,如何解决?
这是您更正后的代码(包含在 main(String[] args) 中,而不是 class):
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 循环之后,你用你的分号让我难过了几分钟。我还发现了更多代码错误。我相信你可以很好地编码,但你需要先学习 Java 的基础知识。