日期:2014-05-20  浏览次数:20718 次

这个程序的循环终止条件是什么?
如题,基本上是书上的一个程序,在黑窗口中一直是输入状态,输入什么会终止?

import java.util.*;

public class Test
{
public static void main(String[] args)
{
     Set<String> words = new HashSet<String>();
     long totalTime = 0;

      Scanner in = new Scanner(System.in);
      while(in.hasNext())              //这个循环的终止条件是什么       
                                                     //呀,怎么在黑窗口中一直是输入状态?输入一 
                                                      //个什么会终止?
      {
  String s = in.next();
  long callTime = System.currentTimeMills();
  words.add(s);
  callTime = System.currentTimeMills() - callTime;
  totalTime = totalTime + callTime;
      }

     Iterator<String> it = words.iterator();
     for(int i=1; i<=20 && it.hasNext(); i++)
     {
 System.out.println(it.next());
     }

}
}


------解决方案--------------------
这个循环不会终止,要你手动结束输入流就行..貌似是Ctrl+z。试一下
------解决方案--------------------

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class Test {
public static void main(String[] args) {
Set<String> words = new HashSet<String>();
long totalTime = 0;

Scanner in = new Scanner(System.in);
while (in.hasNext()) // 这个循环的终止条件是什么
// 呀,怎么在黑窗口中一直是输入状态?输入一
// 个什么会终止?
{
String s = in.next();
long callTime = System.currentTimeMillis();
words.add(s);
callTime = System.currentTimeMillis() - callTime;
totalTime = totalTime + callTime;
if(s.equals("exit")){ // 加个判断条件
break;
}
}

Iterator<String> it = words.iterator();
for (int i = 1; i <= 20 && it.hasNext(); i++) {
System.out.println(it.next());
}

}
}


------解决方案--------------------
自己价格终止条件 例如当你敲进去的字符等于** 这是就break 跳出循环。