![]() |
1
11
如果你声明一个变量
哦,当你打开一个街区,做同样的事情仍然没有意义(起初)。但预计你以后会想要扩展这个块,而且它最终会有意义的。 |
![]() |
2
4
使用大括号,可以创建包含声明的块。没有大括号,您只能有一个语句,而不能有一个声明,例如您的示例 |
![]() |
3
2
因为我认为在这些情况下总是有用的,这里的Java语言规范的相关部分是 §14.4 :
换句话说,局部变量声明只能作为独立声明出现在块的“下面”级别(
|
![]() |
4
1
问题是:
……基本上等同于:
你已经定义并初始化了
|
![]() |
5
0
你在定义变量
编辑:太慢… |
![]() |
6
0
编译器的错误是因为语言的规则没有明确指出“items”变量声明的范围。 例如,如果我有这样的代码块:
很明显,returnValue是整个方法中的一个有效变量。 如果我有这样的代码块:
很明显,returnValue在“if子句”之外是无效的。 但如果我有这样的代码块:
不清楚returnValue是否在if语句的范围内,或者是否在整个方法的范围内。这是由于Java语言文法布局的细节。基本上,允许在任何块中声明新变量(因为块清楚地定义了变量的范围),但是这个if语句不包含块。 如果你假设Java悄悄地为你添加了块,那么范围在“被遗忘的块”内。如果假设没有包含作用域的显式块,则变量的作用域与方法的其余部分处于同一级别。关于哪种观点“更”正确的争论很多,因此禁止做这种事情的全部企图。 如果这对你来说是奇怪的,而你认为只有一个疯狂的人不会假设变量是在隐含块的范围内定义的,那么请记住,Java之前有语言,其范围将与返回语句处于相同的级别。是的,按照今天的标准,疯狂的语言仍然存在。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 5 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 5 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |