Есть ли причина, по которой это выполняется с 3 входами, но не с 2?

#java #input

#Ява #вход

Вопрос:

Когда пользователь вводит данные для имена1, имена2 и имена3, вывод будет в порядке. Однако, когда вводятся только имена 1 и 2, возникает ошибка?

 import java.util.Scanner;   public class LabProgram {  public static void main(String[] args) {  /* Type your code here. */  Scanner scnr = new Scanner(System.in);    String name1, name2, name3;   name1 = scnr.next();  name2 = scnr.next();  name3 = scnr.next();   if (name3.equals("")){  System.out.println(name2   ", "   name1.charAt(0)   ".");  }  else{  name3 = name3.substring(0);  System.out.println(name3   ", "   name1.charAt(0)   "."   name2.charAt(0)   ".");  }  } }  

Исключение:

 Exception in thread "main" java.util.NoSuchElementException  at java.base/java.util.Scanner.throwFor(Scanner.java:937)  at java.base/java.util.Scanner.next(Scanner.java:1478)  at LabProgram.main(LabProgram.java:12)  

Комментарии:

1. Привет, когда вы говорите «когда вводятся только имена 1 и 2», как это происходит, вы изменили свой код или делаете что-то еще, чтобы это произошло, на самом деле недостаточно ясно, чтобы помочь?

Ответ №1:

 name3 = scnr.next();  

вызывает исключение java.util.NoSuchElementException, потому что нет третьего ввода. Вы пытаетесь прочитать из System.in и там нечего читать.