数组

条件循环:
while(条件){

}

for(初始化循环变量;循环条件;改变循环变量){
	循环体
}

do{

}while(条件);

break      结束整个循环
continue   结束本次循环  跳过continue下面的语句 直接进行下一次循环

标签
	break 标签;

数组: 定义一组变量
变量单个单个定义

保存一个学生的单科成绩  int s = 89; 
	有三个学生   int s1=89,s2=90,s3=100;
	
定义数组: 定义数组变量  
	类型[] 数组名 = new 类型[数组长度];
	
	//定义了一个长为10的数组 数组里存储元素的类型是int
	int[] arr = new int[10];
	//定义了一个长度为5的数组 数组里在座元素的类型是double
	double[] brr = new double[5];

数组里的变量都和数组名同名,只能通过下标的形式来区分每一个变量
	下标: 是从0开始递增,到数组长度-1  
		下标不要越界(不要超过泛围,否则将报错
			java.lang.ArrayIndexOutOfBoundsException)
		数组下标越界异常

    数组名.length 可以获得数组的长度
	
	
练习: 定义一个数组,数组长度为10
		从键盘输入10个数字保存到数组中 
		
		把这10个数字输出来
		找出这10个数字里面的最大值
		
		把这个数组中的元素逆序
	
数组最关键的问题   通过下标访问  下标的取值是从0开始
	
	练习:把100以内的质数 放到一个数组里面
		然后再输出
		  
		  生成6个不重复的[1-31]的数字,然后显示
		Random rand = new Random();
		int i = rand.nextInt(31) + 1;
数组 缩放

数组在定义之后元素会自动进行初始化
	数值    0
	布尔    false
	字符串  null

数组初始化:
动态初始化:	类名[] 数组名 = new 类型[数组长度];
静态初始化:    类名[] 数组名 = new 类型[]{v1,v2,v3,...};
				类名[] 数组名 = {v1,v2,v3,...};
	  静态初始化时不能指定数组长度,根据{}值的个数来决定

Arrays.toString(数组名);
	把数组里面的元素转换化一个字符串

Arrays.copyOf(数组,数组长度)
	缩放数组  并且保留元素
		如果是对数组扩容,则会复制原数组里面所有的元素 且  扩容部分填充默认值 
	如果是缩小数组大小,则数组里的元素减少

System.arraycopy(src, srcPos, dest, destPos, length);
src: 源数组
srcPos: 源数组下标位置
dest: 目标数组
destPos: 目标数组下标位置
length: 拷贝长度

从源数组src的下标位置srcPos拷贝length个元素到目标数组dest的下标位置destPos

如果源数组的元素个数不够或者目标数组存储不下都将导致异常
	java.lang.ArrayIndexOutOfBoundsException

练习:
	交换两个数组的值
	int[] arr = new int[]{1,2,3,4};
	int[] brr = new int[]{5,6,7,9,10};
	

基本数据类型  8种
引用数据类型 

二维数组:
数据类型[][] 数组名 = new 数据类型[二维数组长度][一维数组长度];
	new 数据类型[行][列]
	
唯一标识一个元素:由行和列才能确定唯一的那个元素
	行和列:  下标  
		下标都是从0开始
	

练习:nXn的二维数组
	逆转矩阵
	1  2  3           1   4   7
	4  5  6    -->    2   5   8
	7  8  9           3   6   9

数组:

基本数据类型  java只有8种
引用数据类型

一维数组:
类型[] 数组名 = new 类型[数组长度];
类型[] 数组名 = {v1,…};
类型[] 数组名 = new 类型[]{v1,v2,…};
下标:从0开始,到数组长度-1
数组名[下标] 访问数组里的元素

数组长度:  数组名.length


for(int i=0;i<数组名.length;i++){
	数组名[i]
}


二维数组:
	类型[][] 数组名 = new 类型[二维数组长度][一维数组长度];
	int[][] crr = new int[3][4];

当访问一个没有引用具体对象的引用变量时将引发以下异常:
	java.lang.NullPointerException

练习:
要保存杨辉三角形的前7行
1
1  1
1  2  1
1  3  3  1
1  4  6  4  1
1  5  10 10 5  1
      arr[i][j] = arr[i-1][j-1] + arr[i-1][j];


练习:
	有4个班级
	5个学生
	6个学生
	7个学生
	9个学生

	控制台输入 保存这些学生的成绩
	找出每一个班的最高成绩  以及 所有班级里成绩最高的

39题 约瑟夫问题:
	有n个编号(1-n)小孩围成一圈,从第1个小孩开始依次进行重复报数 1-3
	报到3数字的小孩出列,求最后剩下的那个小孩子的编号 


Arrays.toString();
数组名.length 
数组名.copyOf(数名,数组长度);
System.arrayCopyOf(src,srcPos,dest,destPos,length);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值