你正在更改迭代变量
c。那不会改变数组的内容。迭代变量只是数组元素的副本。如果要修改数组,则需要显式修改:
for (int i = 0; i < array.length; i++) { if (array[i] == 'o') { array[i] = 'a'; }}你的原始代码等效于(按照JLS的14.14.2节):
for (int i = 0; i < array.length; i++) { char c = array[i]; if (c == 'o') { c = 'a'; }}更改局部变量的值将永远不会更改任何其他内容,它只会更改局部变量。那作业:
char c = array[i];
将数组中的值复制到局部变量中。它不会将本地变量与数组元素永久关联。



