Java 为什么';扫描仪从不关闭';警告不';你不会消失吗?

Java 为什么';扫描仪从不关闭';警告不';你不会消失吗?,java,java.util.scanner,Java,Java.util.scanner,尽管在第46行写入了scanner.close(),但为什么关于scanner的警告没有在第13行消失 因为从编译器的角度来看,不能保证用户会键入“end”来关闭程序。您编写的代码会在每次循环执行时打开一个新的扫描程序。您应该在while循环之外添加关闭调用,并在while之外声明扫描仪,避免打开太多的扫描仪,将代码作为文本而不是图像发布……您有一个无限循环,在每次迭代中创建一个新的扫描仪。如果用户没有输入End,所有情况下会发生什么?该扫描仪永远不会关闭…scanner.close()应该独立

尽管在第46行写入了
scanner.close()
,但为什么关于scanner的警告没有在第13行消失


因为从编译器的角度来看,不能保证用户会键入“end”来关闭程序。您编写的代码会在每次循环执行时打开一个新的扫描程序。您应该在while循环之外添加
关闭
调用,并在
while
之外声明
扫描仪
,避免打开太多的
扫描仪

将代码作为文本而不是图像发布……您有一个无限循环,在每次迭代中创建一个新的扫描仪。如果用户没有输入
End
,所有情况下会发生什么?该扫描仪永远不会关闭…scanner.close()应该独立于条件语句,这就是您收到此警告的原因。试着把它放在脚本的末尾。