使用java进行iFite循环。util。Eclipse中的扫描仪
我必须从控制台读取这种输入:
word1
word2
word3
word4
我试过:
public static void lectSC(Scanner sc, String l, boolean next) {
l=sc.nextLine(); //keep the first line
while(!l.isEmpty()){ //if it is not empty go! until the white line
checkDicc(l);//check if is the word that I am looking for
l=sc.nextLine(); //get the next word
}
l=sc.nextLine(); //take the nextLine which has a word3
while(!l.isEmpty()){
parejas.add(l);
next=sc.hasNext(); //HERE IT IS THE INFINITY LOOP
if(next){ //I try with this next know which is the value of hasNext(), but I never arrive here when it is the last line.
l=sc.nextLine();
}else{
l=""; //It is how it should exit
}
}
System.out.println("OUT");
}
我不得不说,当我在键盘上点击Ctrl-Z时,程序会继续运行,但它不能像那样工作
谢谢
# 1 楼答案
,当从控制台读取时,程序需要一个流,它将等待进一步的输入
下面是该方法的官方java文档,它确实提到了它的阻塞性质,但没有太多细节:- http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#hasNext()