public class EOF {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i=1;
while(sc.hasNextLine()==true)
{
String str = sc.nextLine();
System.out.println(i+" "+str);
i++;
}
System.out.println("completed");
}
}
最后一行System.out.println("completed");
未执行。循环不会终止并且一直在运行。
答案 0 :(得分:1)
来自documentation for Scanner.hasNextLine():
此方法可能会在等待输入时阻止。
这意味着如果没有输入等待返回,它将等待更多输入进入。
如果Scanner
正在接受来自System.in
的输入,则需要找到一种更好的方法来决定何时完成输入。例如,如果用户键入"quit"
,或者他们输入空行。
答案 1 :(得分:0)
请使用此
public class EOF {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i=1;
while(sc.hasNextLine()==true)
{
String str = sc.nextLine();
System.out.println(i+" "+str);
i++;
if(str.equals("stop")){
break;
}
}
System.out.println("completed");
}
}