我有以下代码:
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中运行它时,它没有运行。为什么呢?
答案 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函数来在控制台环境中执行你的类,你将加载静态块。