2017-03-03 75 views

回答

2

您忘記了for循環的「increment」部分。你已經獲得了初始化部分(調用一次,這就是爲什麼i永遠保持c)和條件部分,但是你錯過了循環每次迭代執行的最後一部分。

的但是不是編寫for(String i = a.pop; !a.isEmpty(); i = a.pop())我建議使用更貼合while循環

while(!a.isEmpty()) 
    System.out.println(a.pop()); 
+0

其實l具備不會被遺忘。我認爲流行可以用於增量部分,但它根本不合邏輯。 – deeperwhite

+1

你是什麼意思,這不合乎邏輯?與'for(int i = 0; i <10;)'比較,很容易看出它爲什麼失敗。 – Kayaman

+0

@deeperwhite'pop'對於增量部分是很好的,但你沒有。 – AntonH

1

替換:

for(String i = a.pop(); !a.isEmpty() ;) 

有:

for(String i = a.pop(); !a.isEmpty() ; i = a.pop()) 

正因爲如此,你不能在i替代的價值,而且還是在棧中的元素。所以你只是得到一個無限循環,並顯示你彈出的最後一個值,即「c」。