我已经编写了以下使用List Iterator函数的代码,为什么没有打印出结果,谁能告诉我有什么问题?谢谢。
import java.util.ArrayList;
import java.util.ListIterator;
public class MyTest {
public static void main (String[] args){
ArrayList<String> myList = new ArrayList<String>();
myList.add("Apple");
myList.add("Orange");
myList.add("Banana");
myList.add("Grape");
myList.add("Water Melon");
ListIterator<String> itr = myList.listIterator();
while(itr.hasNext());
System.out.println(itr.next());
while(itr.hasPrevious());
System.out.println(itr.previous());
}
}
答案 0 :(得分:3)
将while循环更改为:
while(itr.hasNext()) {
System.out.println(itr.next());
}
while(itr.hasPrevious()) {
System.out.println(itr.previous());
}
看看分号是如何存在的。
答案 1 :(得分:0)
while(itr.hasNext()); // semilcolon here
System.out.println(itr.next());
while(itr.hasPrevious()); // semilcolon here
System.out.println(itr.previous());
由于这些分号,while循环都有空语句。因此,您的代码无限运行。
使用{}
作为循环。
答案 2 :(得分:0)
在其他答案中添加信息的另一件事是缩进是一个强大的工具。如果您的代码缩进正确,您可以通过查看代码缩进来证明出错。
这就是你所拥有的:
<div style="background: grey; padding: 10px;">
你可以看到两个语句都处于同一级别,如果第二个语句应该在while(itr.hasNext());
System.out.println(itr.next());
循环中运行,它应该像这里一样深一层:
while
如果您在while(itr.hasNext())
System.out.println(itr.next());
声明的末尾没有;
,那么您将获得上述内容。