Scanner sc = new Scanner(System.in);
while(true){
TreeSet<Integer> set=new TreeSet<Integer>();
int n=sc.nextInt();
for(int i=0;i<n;i++){
set.add(sc.nextInt());
}
for(Integer i:set){
System.out.println(i);
}
}
上面的代码给出Index out of bounds
;但是当我使用sc.hasNext()
时,它会起作用。为什么呢?
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
TreeSet<Integer> set=new TreeSet<Integer>();
int n=sc.nextInt();
for(int i=0;i<n;i++){
set.add(sc.nextInt());
}
for(Integer i:set){
System.out.println(i);
}
}
答案 0 :(得分:0)
基本上
while(true) {
//some code
}
将永远运行,除非你以某种方式使用break
。
while(sc.hasNext()) {
//some code
}
当Scanner sc
无法阅读任何内容或您使用break
关键字时,将停止投放。