是否有理由在输入之前创建字符串变量?

pas*_*sta 6 java

新学习java和输入,我们做了

Scanner scan = new Scanner(System.in);
String name;
System.out.println("What is your  name?");
name = scan.nextLine();
System.out.println(name);
Run Code Online (Sandbox Code Playgroud)

然而,我发现

Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
System.out.println(name);
Run Code Online (Sandbox Code Playgroud)

工作原理是一样的。这是以更大的形式教给我的,因为它更常用/更清晰,还是因为我是初学者,所以我只是被教更大的形式,以避免太多混乱?(基本上,人们会使用扩展版本而不是压缩版本有什么原因吗?)

小智 9

/sf/answers/20193561/

-> 似乎在一些旧的 C 标准中,您必须在方法的开头声明所有变量。所以我认为他们在这样教学时只是坚持这一点,但现在没有真正的理由。


Lal*_*hra 2

就你而言,这是同样的事情。但在变量作用域的上下文中使用时它更有用。

使用代码块时,首选方法是在使用值初始化引用变量之前创建引用变量,以便也可以在块外部使用引用。看看这个例子:

int sum = 0;

for (int idx = 0; idx < 5; idx++) {
    sum += idx;
}
return sum;
Run Code Online (Sandbox Code Playgroud)