程序没有执行

时间:2013-10-27 02:57:53

标签: java

我有以下代码:

public class FibonnaciSeries {

    static {
        int first = 0;
        int next = 1;
        int sum = 0;
        System.out.println(first);
        System.out.println(next);
        for (int i = 2; i < 10; i++) {
            sum = next + first;
            first = next;
            next = sum;
            System.out.println(sum);
        }
    }

}

当我尝试在Eclipse中运行它时,它没有运行。为什么呢?

3 个答案:

答案 0 :(得分:2)

做得对 - 从静态初始化程序块中取出代码并将其放在静态主块中:

public class FibonnaciSeries {

    public static main(String[] args) {
        int first = 0;
        int next = 1;
        int sum = 0;
        System.out.println(first);
        System.out.println(next);
        for (int i = 2; i < 10; i++) {
            sum = next + first;
            first = next;
            next = sum;
            System.out.println(sum);
        }
    }
}

我担心您可能正在使用静态初始化程序块,因为您并不完全熟悉主方法的结构。 Java程序需要一个起点,一个JVM可以识别并知道的方法,这是开始从&#34;开始运行的地方,这是主要的方法。给你的类中的一个,并避免使用静态初始化程序块,除非你知道为什么需要使用它并且是出于这个特定原因使用它。

答案 1 :(得分:1)

Java 7开始,您需要使用main()方法来执行代码。

public static void main(String args[]) { }添加到您的班级。

Java 6及更低版本之前,您可以将System.exit(0);添加到静态块,以使代码执行。 (注意:这不适用于Eclipse。请从命令行尝试。)

答案 2 :(得分:1)

应该是:

public class FibonnaciSeries {

static {
    int first = 0;
    int next = 1;
    int sum = 0;
    System.out.println(first);
    System.out.println(next);
    for (int i = 2; i < 10; i++) {
        sum = next + first;
        first = next;
        next = sum;
        System.out.println(sum);
    }
}

public static void main(String[] args) { } 
}

我测试过并且有效。它需要一个main函数来在控制台环境中执行你的类,你将加载静态块。