java 在输入之前创建字符串变量有什么原因吗?

blmhpbnm  于 2024-01-05  发布在  Java
关注(0)|答案(3)|浏览(102)

刚开始学习java,为了输入,

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

字符串
但我发现

Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
System.out.println(name);


这是教我更大的形式,因为它更普遍使用/更清晰,还是我只是因为我是初学者而被教导更大的形式,以避免太多的混乱?(基本上,有什么原因为什么人们会使用扩展版本而不是压缩版本?)

fafcakar

fafcakar1#

https://stackoverflow.com/a/288479
->看起来在一些旧的C标准中,你必须在方法的开头声明所有变量。所以我认为他们在这样教它的时候只是坚持这一点,但现在没有真正的理由这样做。

vsikbqxv

vsikbqxv2#

正确的扩展版本应该是

Scanner scan = new Scanner(System.in);
String name;
System.out.println("What is your  name?");
name = scan.nextLine(); // no need of String keyword here
System.out.println(name);

字符串
为什么有人会更喜欢它?
考虑一个方法定义,可能类似于下面的内容,

public AccountDetails getDetails(Person person){
   Address address;
   AccountInfo accountInfo;
   address = person.getAddresses();
   accountInfo = getDetailsOfAccount();

.......many more lines
   return accountDetails;
}


因此,从上面的代码中,在方法的顶部声明所有变量,并使用适当的命名约定,只是帮助你提前解决问题,就像前面道路上的标志障碍一样,这就是方法要处理的问题。
除此之外,你可以遵循任何版本的代码,两者都是一样的。

kzmpq1sx

kzmpq1sx3#

在你的例子中,这是同样的事情。但是当在变量作用域的上下文中使用时,它更有用。
在使用代码块时,在初始化引用变量之前创建引用变量是首选的方法,这样引用也可以在代码块之外使用。看看这个例子:

int sum = 0;

for (int idx = 0; idx < 5; idx++) {
    sum += idx;
}
return sum;

字符串

相关问题