有人可以帮我解决这个问题吗? 代码:http://pastebin.com/nDG7YGk5
完整错误: 线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间 在Stack.push(Stack.java:16) 在hanukkah.input(hanukkah.java:42) 在hanukkah.main(hanukkah.java:50)
我没有使用虚拟机, 只是日食。
感谢。
答案 0 :(得分:4)
这是一个无限循环:
while(n!=0)
s.push(n);
将n
推送到堆栈时,if
的值不会改变。所以它永远不会等于0.你可能意味着要成为一个{{1}}语句(以确保用户没有输入0),或者将while循环放在扫描器周围,这样他们就可以继续输入数字直到他们不等于0。
答案 1 :(得分:0)
我认为你的意思是做:
int n = Integer.MAX_VALUE;
while (n != 0) {
n = reader.nextInt();
s.push(n);
}