我有两个版本的Java代码,它们会在用户输入“ q”版本1之前获取用户输入:
public class Test {
public static void main(String[] args) {
String input = "";
while (!input.equals("q")) {
Scanner scanner = new Scanner(System.in);
System.out.print("Input: ");
input = scanner.nextLine();
System.out.println("Input was: " + input);
}
}
}
Run Code Online (Sandbox Code Playgroud)
版本2:
public class Test {
public static void main(String[] args) {
String input = "";
while (!input.equals("q")) {
try(Scanner scanner = new Scanner(System.in)){
System.out.print("Input: ");
input = scanner.nextLine();
System.out.println("Input was: " + input);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
版本1可以正常工作,但版本2不能正常工作。也就是说,第一次读取用户输入后,会产生错误
Input: 12
Input was: 12Exception …Run Code Online (Sandbox Code Playgroud)