Java方法不会执行多次
我试图让printMethod方法对6个不同的输入执行6次,但它只需要一个输入,输出一次结果,然后结束。我曾尝试将方法调用定位在不同的位置,但似乎没有任何区别。有人能告诉我我做错了什么吗Java方法不会执行多次,java,methods,method-call,Java,Methods,Method Call,我试图让printMethod方法对6个不同的输入执行6次,但它只需要一个输入,输出一次结果,然后结束。我曾尝试将方法调用定位在不同的位置,但似乎没有任何区别。有人能告诉我我做错了什么吗 import java.util.Scanner; public class Lab_Week4_PrintTable_Part2 { public static void main(String[] args) { printMethod(); printMe
import java.util.Scanner;
public class Lab_Week4_PrintTable_Part2 {
public static void main(String[] args) {
printMethod();
printMethod();
printMethod();
printMethod();
printMethod();
printMethod();
}
private static void printMethod() {
Scanner data = new Scanner (System.in);
String output = data.nextLine();
System.out.println("---------------------");
System.out.println("| | | | | |");
System.out.println(output);
System.out.println("| | | | | |");
System.out.println("---------------------");
data.close();
}
}
这是由于关闭了使用
系统打开的扫描仪
System.in
由JVM打开,如果您在关闭扫描仪时强制关闭它,您将发现在程序的其余部分无法再次打开它
如果您不想看到警告,并且您的程序将按预期工作,只需删除行data.close()
,并抑制扫描仪的警告
通常,您不想关闭正在使用System.in的扫描仪
,而System.in
将自动关闭,因此无需担心
请注意,如果使用文件而不是系统打开它,则应该关闭扫描仪
。在
中,在任何情况下,OP都应该只有一个扫描仪
,而不是每次调用该方法时都重新声明/重新实例化它,只需重新使用该方法即可object@Frakcool是的,这是真的,但是,也许这意味着它是一个独立的方法,不依赖于任何外部交互,我可以理解为什么希望在方法内部声明它。这取决于这里的目标,两者都可能有原因。我同意@nexevist这一点,非常感谢。我以前认为让扫描仪打开是不好的做法,但有时似乎有必要让它打开open@Charlie我认为在课堂环境中,他们通常不会解释关闭的细节,只是说总是关闭它,这通常是正确的,这是可以理解的错误。