变量无法解析为循环内的变量

时间:2018-06-24 20:32:24

标签: java declare

我编写了以下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语句中声明了。我读了几个示例,您可以在其中执行此操作。这是怎么了?如何解决?

1 个答案:

答案 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的基础知识。