在Java中使用“for each”和“for”循环数组不同的结果
我试图将已定义类的数组中的所有元素设置为null。我刚刚了解了for each循环的用法,因此尝试了以下方法:
for(MyClass element:array){
element=null;
}
但是,编译后这不起作用,并且有一条警告“未使用局部变量元素的值”。我尝试了一个正常的for循环,但它按预期工作:
for(int i=0;i<array.length;i++){
array[i]=null;
}
我的问题是为什么for-each循环不起作用?我对它的用法有误解吗
# 1 楼答案
附带说明:如果您只想用
null
填充数组,那么您可以使用当然,您将错失学习
for-each
和常规for
之间差异的宝贵课程的机会# 2 楼答案
对于每个元素都是只读的,如果您设置了元素的值,则不会在数组本身中更改它,只会在循环中更改它! 例如:
其中打印:
# 3 楼答案
认为你有以下的例子:
实际上,
element
是一个变量,我可以在循环中使用它,而不是数组的实际元素,这相当于:因此,当您使用
element = null
时,这不会更改数组(array[i]
)的值希望你得到它