这个问题在这里已经有答案了:
如何在java中以scanner方法hasnext为条件跳出while循环(9个答案)
上个月关门了。
import java.util.Scanner;
public class testFixedCapacityStack {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
FixedCapacityStack<String> s;
s = new FixedCapacityStack<String>(100);
while(sc.hasNext()) {
String item = sc.next();
if(!item.equals("-")) {
s.push(item);
} else if (!s.isEmpty()) {
System.out.print(s.pop() + " ");
}
}
System.out.println(s.size());
}
}
我不知道为什么最后一行没有被执行。有人请指出我哪里做错了。谢谢您。
1条答案
按热度按时间odopli941#
您的代码请求一个新字符串作为输入,如果它不是空的,则继续循环。这使你的while循环成为一个永无止境的循环。这就是最后一行没有执行的原因。可以在循环中为退出字符串插入if语句。
现在,当您输入值“/”作为输入时,它将退出while循环,最后一行将执行。