这有 3 个输入而不是 2 个输入的原因吗?

Is there a reason this runs with 3 inputs but not 2?

当用户输入 name1、name2 和 name3 时,输出正常。但是,当只有name1和name2接收输入时,出现错误?

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)
name3 = scnr.next();

抛出 java.util.NoSuchElementException 因为没有第三个输入。您正在尝试从 System.in 读取内容,但没有任何内容可读取。