Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java如何获取用户输入_Java_Input_Java.util.scanner - Fatal编程技术网

java如何获取用户输入

java如何获取用户输入,java,input,java.util.scanner,Java,Input,Java.util.scanner,两者的区别是什么 Scanner keyboard= new Scanner(System.in); int answer= keyboard.nextInt(); 及 我是这里的初学者,所以透彻的解释会很有帮助。提前谢谢 第一条语句初始化可以多次使用的Scanner对象 第二条语句仅为该行代码创建一个新的Scanner对象。下次需要输入时,必须调用新的扫描仪对象 创建变量比每次创建一个新对象更好 Scanner keyboard= new Scanner(Sy

两者的区别是什么

        Scanner keyboard= new Scanner(System.in);
        int answer= keyboard.nextInt();


我是这里的初学者,所以透彻的解释会很有帮助。提前谢谢

第一条语句初始化可以多次使用的Scanner对象

第二条语句仅为该行代码创建一个新的Scanner对象。下次需要输入时,必须调用新的扫描仪对象

创建变量比每次创建一个新对象更好

Scanner keyboard= new Scanner(System.in);
int answer= keyboard.nextInt();
在上面的代码中,
扫描器
对象在堆内存中创建,其引用存储在名为
键盘
的变量中(
键盘
变量存储在堆栈内存中)。使用变量
键盘
可以在程序的任何位置访问
扫描仪
对象

 int answer= new Scanner(System.in).nextInt();

在第二条语句中,您创建的对象也存储在堆内存中,但对象的引用不存储在任何变量中。因此,您无法再访问此对象。在此语句之后,堆内存中的对象就可以被垃圾回收,因为它的引用不再被使用。

您知道(局部)变量是什么吗?没有区别。首先将扫描器分配给一个变量,在下一个示例中不分配。它们是相等的,但第一个比另一个更相等。没有区别,只是不能重用第二个代码段的Scanner实例。没有区别。在第一种情况下,您只需在局部变量中指定“新扫描仪”,而在第二种情况下,您直接使用“新扫描仪”。如果必须在同一方法中读取多个用户输入,第一种情况可能很有用,如果一次只有一个用户输入,第二种情况就足够了。@C-Otto是的,我知道局部变量是什么!如果我需要用户输入的只是“应答”,而我正在循环中使用它,那么第二个代码就足够了,对吗?
for(int I;iAs,我是说,该代码可以工作,但编程约定希望您在使用之前声明Scanner对象(意外按下send)。这使代码更易于阅读和理解。
 int answer= new Scanner(System.in).nextInt();