以下代码给出错误,因为变量 m 被定义了两次。
class one {
public static void main(String args[]) {
int m=10;
int m=10;
}
}
但是当声明在循环内完成时,即使 m
仍然被定义了两次,也是可以的。
class one {
public static void main(String args[]) {
for(int i=1;i<=2;i++) {
int m=10;
}
}
}
并且编译器不会返回错误消息。
你能解释一下两者之间的区别吗?为什么有时我可以在同一个方法中声明同一个变量两次,有时却不能?
最佳答案
对于第一种情况,m 会被引用到 main 方法的末尾,因此同一作用域中不能有两个同名的变量。
而在第二种情况下,每次循环执行时,最后一次迭代的 m 不再被引用,因此您可以重新声明并重新初始化它。
关于java - 循环内变量声明与同一变量名的多个声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654916/