Почему это не печатает «сделано»?Не удается распечатать строку после записи через вход сканера - Java
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while (s.hasNext()) {
System.out.println(s.nextInt());
}
System.out.println("done");
}
}
Он печатает вход только отлично, но не печатает слово сделано.
EDIT если я входных чисел, разделенных пробелами в консоли, а затем нажмите клавишу ВВОД, он печатает все целые числа я введенные в отдельной строке, но он просто не печатает слово сделано после того, как все, что
EDIT
это работает ... но, кажется, не очень элегантно
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int temp;
while (s.hasNext()) {
temp = s.nextInt();
if (temp != -99) {
System.out.println(temp);
} else {
break;
}
}
System.out.println("done");
}
}
Произошел ли поток ввода? (Ctrl-D в Linux, Ctrl-Z и Enter в Windows) – immibis
Я не уверен, что понимаю ваш вопрос. Если сканер имеетNext(), но он пуст, не должен ли он печатать 0? – A2345sooted
Он будет ждать, пока вы что-нибудь напечатаете. hasNext вернет false, если вы читали из файла, и вы дошли до конца файла, или вы читали из сетевого подключения, и сервер закрыл соединение. – immibis