JAVA第四天,循环和数组

本文深入解析Java中数组的声明、初始化、访问、复制及打印方法,包括数组元素的逐个打印和数组的扩容技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、for循环
		a           b			c
for(初始化表达式;布尔表达式;递增(或递减)表达式){
		d
	//循环体
}
执行过程:a为真:a->b->d->c->b->d->c,直到b为假,跳出for循环

for(;;){
	}//死循环,与while(true){}等价

char ch = barcoad.charAt(i);//条码在角标为i的字符,该句的作用是从字符串中取相应的字符

2、关于int与char的语句
	int c1 = '0';	//c1=48
	int c2 = '6'-'0' //c2=6	这句可以将字符型数字转换为整型
	int c3 = '6'+'0' //c3=102

3、do-while
{
	//循环体--a
}while(布尔表达式);---b
执行过程:从a开始,到布尔表达式处,如果为真,回去执行a,如果为false,执行b后面的内容


4、数组(Array)

1)、数组变量的声明
	int[] ary;//声明了数组变量ary,数组变量是代词
	int ary[];//兼容C语言的写法,java中不建议使用
关于数组的两个错误形式
int[] arr;
System.out.println(arr[1]);//编译错误。因为arr没有初始化
arr=null;//null:表示空,没有
System.out.println(arr[0]);//运行异常,空指针异常,在null的引用变量上访问属性(成员)方法,引发空指针异常。

2)、数组初始化
int arr;
arr = new int[5];//new int[5]是创建数组对象,有5个数组元素,序号0、1、2、3、4,创建对象必须指定数组大小;
				//数组元素自动初始化为”零“值:0,0,0,0,0;\u0000;false;null几种情况,这取决于数组类型
			
ary = new int[]{4,5,6};//new int[]{4,5,6};和new int[5] 都是动态创建数组对象,是数组对象的动态初始化
int[] ary ={7,8,9};//数组的静态初始化{7,8,9},只能用在声明时候直接初始化数组

int[] ary1;
ary1={4,5};//编译错误,静态初始化不能直接赋值;

3)、访问数组元素
使用运算符[下标],访问(读写)数组元素。所谓下标,就是元素的位置代号,可以称作角标,数组的第一个元素角标为0,以此类推
int i = ary[0];//读取数组中角标为0的数组元素
ary[1] = 10;//将10写入数组中角标为1的位置

数组名.length;//获得数组的长度
数组名(数组名.length-1);//读写数组的最后一个元素

4)、数组的复制
利用JAVA系统API提供的方法高效实现
	System.arraycopy();
	System.copyOf();//底层是System.arraycopy();
用法:
System.arraycopy(arr1,i,arr2,j,arr1.length);//从arr1数组角标为i的位置开始,复制到arr2数组角标为j的位置,连续复制arr1.length长度个元素
int[] arr2 = Arrays.copyOf(arr1,ary1.length);//将arr1直接复制给arr2,长度为arr.length

另外利用for循环也可以实现数组的复制
	int[] ary1 = {4,5,6};
	int[] ary2 = new int[ary1.length];
	for (int i=0;i<ary1.length;i++ )
	{
		ary[i]=ary1[i];//将ary1中角标为i的元素赋给ary中角标为i的元素
		System.out.println(ary[i];
	}

5)、将数组中元素逐个打印出来的方法
	用Arrays.toString();//打印出来的格式为[,,,],用该方法要导入包java.util.Arrays;

	示例
	package day04;
	import java.util.Arrays;
	public class ArrayCopy
	{
		public static void main(String[] args)
		{
			int[] ary1 =[4,5,6];
			int[] ary2 = new int[ary1.length];
			int[] ary3 =new int[ary1.length+1];
			System.arraycopy(ary1,0,ary2,0,ary1.length);
			System.arrycopy(ary1,0,ary3,1,ary1.length);
			System.out.println(Arrays.toString(ary1));//[4,5,6]
			System.out.println(Arrays.toString(ary2));//[4,5,6]
			System.out.println(Arrays.toString(ary3));//[0,4,5,6]

			int[] ary4 =Arrays.copyOf(ary1,ary1.length);
			System.out.println(Arrays.toString(ary4));//[4,5,6]
		}	
	}
	

6)、数组的扩容
	真正的数组对象的长度是不可改变的,利用交换长度不同的数组对象,可以变通的修改数组的容量,利用数组的复制方法,可以保持数组的内容不变
	示例
	package day04;
	import java.util.Arrays;
	public class ArrayCopy
	{
		public static void main(String[] args)
		{
	int[] ary={1,2,3};
	int[] temp=Arrays.copyOf(ary,ary.length+1);//将复制的数组temp长度加1
	ary=temp;//等价于ary1=Arrays.copyOf(ary,ary.length+1);
	ary[ary.lengrh-1]=8;//改变数组的最后一个元素
	System.out.println(Arrays.toString(ary));//[1,2,3,8]
	}	
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值