我正在尝试使用Java中的pop方法。我期望按顺序"c", "b", "a"
看到字符串。但是,它无限打印出"c"
。为什么会这样?
Stack<String> a = new Stack<>();
a.push("a");
a.push("b");
a.push("c");
for(String i = a.pop(); !a.isEmpty() ;){
System.out.println(i);
}
答案 0 :(得分:2)
你忘记了for循环的“增量”部分。你有初始化部分(称为一次,这就是i
永远保持c
的原因)和条件部分,但是你错过了循环的每次迭代执行的最后一部分。
然而,不是写for(String i = a.pop; !a.isEmpty(); i = a.pop())
而是建议使用更合适的while循环
while(!a.isEmpty())
System.out.println(a.pop());
答案 1 :(得分:1)
替换:
for(String i = a.pop(); !a.isEmpty() ; i = a.pop())
使用:
i
实际上,您并未替换{{1}}中的值,以及堆栈中的静止元素。因此,您只是获得一个无限循环,并显示您弹出的最后一个值,即&#34; c&#34;。