提问人:Amritesh Yadav 提问时间:9/28/2023 更新时间:9/28/2023 访问量:92
java 中变量的作用域
Scope of a variable in java
问:
代码和错误根据变量范围 m(未初始化)不应该在其中有值,这是正确的,我得到了一个错误,但是当你初始化一个变量,然后在迭代结构内的条件结构中使用它时,它可以得到你提供给它的任何值。
为什么?无论其初始化如何,变量范围都不应该保持不变吗?
基本上,如果我声明 int a;并在 if 条件中给它一个值,该条件位于 for 循环中,它不会获得该值并且保持未初始化状态,但如果初始化它,则 int a=0;然后在 for 循环内的 if 条件中给它任何值,它确实得到了我给它的值。
答:
-1赞
Diego Moran
9/28/2023
#1
我将向您推荐以下文章,您也可以在这里找到示例:
文章摘要: 如果我们声明一个没有初始值的局部变量,我们将得到一个错误。此错误仅发生在局部变量上,因为 Java 在编译时自动初始化实例变量(它为整数设置 0,为布尔值设置 false,以此类推)。但是,局部变量需要默认值,因为 Java 编译器不允许使用未初始化的变量。
我希望它有所帮助
评论
0赞
k314159
9/28/2023
那篇文章太简单了。局部变量必须在使用前初始化。这意味着,如果不使用它们,则不必初始化它们。例如,如果它们仅在内部块中使用,则只需在该内部块中初始化它们。此外,它们不必在与其声明相同的语句中初始化。它们可以初始化,例如,在声明之后,例如 链接的文章似乎没有说得很清楚。int n; if (cond) n = 1; else n = 2;
评论