0

有人可以帮我解决这个问题吗?代码: http: //pastebin.com/nDG7YGk5

完整的错误:线程“main”中的异常 java.lang.OutOfMemoryError: Java 堆空间 at Stack.push(Stack.java:16) at hanukkah.input(hanukkah.java:42) at hanukkah.main(hanukkah.java: 50)

我没有使用虚拟机,只是eclipse。

谢谢。

4

2 回答 2

4

这是一个无限循环:

 while(n!=0)
 s.push(n);

n当您将其推送到堆栈时,它的值不会改变。所以它永远不会等于 0。您可能的意思是作为一个if语句(以确保用户没有输入 0),或者在扫描仪周围放置 while 循环,以便他们可以继续输入数字,直到它们不等于0。

于 2012-12-09T17:13:00.150 回答
0

我认为您打算执行以下操作:

int n = Integer.MAX_VALUE;
while (n != 0) {
   n = reader.nextInt();
   s.push(n);
}
于 2012-12-09T17:14:00.927 回答