博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java】 foreach对数组赋值问题
阅读量:4590 次
发布时间:2019-06-09

本文共 519 字,大约阅读时间需要 1 分钟。

  今天写代码时发现了如下问题:

public class Test {	public static void main(String[] args) {		int[] arr= new int[5]; 		for (int a : arr) {			a=1;		}		System.out.println(Arrays.toString(arr));	}}

  

[0, 0, 0, 0, 0]

  可以看出,使用foreach方法没办法给数组赋值。

  实际上,foreach语句

for (int a : arr) {		a=1;	}

  相当于:

for(int i=0;i

  使用foreach时,是赋值给了一个临时变量,采用值传递,临时变量的改变并不会改变arr[i]本身,与如下代码的原理相同:

int a = 1;int b = a;b = 2;System.out.println(a); //a不会随着b改变

   

因此,以后在使用foreach时要注意:foreach仅可用于遍历输出数组,但不能用于修改数组。

 

 

  

转载于:https://www.cnblogs.com/yongh/p/9951332.html

你可能感兴趣的文章
docker-compose exec时出现"fork/exec /proc/self/exe: no such file or directory" 报错
查看>>
IIS的安装及网站发布的图解
查看>>
VM虚拟机安装苹果雪豹操作系统
查看>>
dos进去mysql导入数据库
查看>>
Oracle单表去重复(一)
查看>>
C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?...
查看>>
JSON字符串互相转换的三种方式和性能比较
查看>>
C++中cout输出字符型指针地址值的方法
查看>>
Java运算符法则
查看>>
深入理解java异常处理机制
查看>>
SQL---规则篇
查看>>
windows下配置Tomcat7.0.22
查看>>
Perl中命令行参数以及打开管道文件
查看>>
习题 11 提问
查看>>
2018-07-05-Python全栈开发day25-python中的继承
查看>>
MySQL 数据类型(转贴)
查看>>
Maven 常用命令
查看>>
Java注解知识点摘抄
查看>>
决战Leetcode: easy part(1-50)
查看>>
数组中出现次数超过一半的数字
查看>>