Java的快速复习——数组(一)

一、创建数组的三种方式:

方式一:

int[] array1 = new int[]{1,2,3,4,5};

 方式二:

int[] array2 = {1,2,3,4,5};

方式三:

int[] array3= new int[10];

二、数组的初始化(给上面创建数组的三种方式分类)

1.静态初始化:

声明数组时直接在内存中分配空间,并将值存入内存空间中

如上面的方式一、方式二

2.动态初始化:

初始化时指定数组的长度,内存空间中的数据由系统分配初始值

如上面的方式三

三、数组的使用

1.1 遍历数组

代码:

        //用方式一静态初始化一个数组
		int[] array1=new int[]{1,2,3,4,5,6};
		//用for循环遍历数组
		for(int i = 0;i<array1.length;i++){
                            
                           //用下标访问数组
			System.out.println(array1[i]);
		}

结果:

1.2 得到输入不确定个数的不确定数值的数组

代码:

        Scanner scan=new Scanner(System.in);
		System.out.println("请确定数据个数:");
		int length=scan.nextInt();
		
        //用方法3动态化一个数组,长度为从输入台获取的长度
		int array3[]=new int[length];
		for(int i=0;i<length;i++){
			System.out.println("请输入第"+(i+1)+"个数:");
			array3[i]=scan.nextInt();
		}

 结果:
 

1.3.1 获得数组内的最大值

代码:

        //用方式二静态化一个数组
		int[] array2={9,40,6,9,8};
		int max=0;
		for(int i=0;i<array2.length;i++){
			//打擂台,只要比max的值大,就可以换掉max的值
			if(array2[i]>max){
				max=array2[i];
			}			
		}
		System.out.println(max);

结果

1.3.1 获取数组内的最小值

代码:

	//用方式二静态化一个数组
		int[] array2={9,40,6,9,8};
		int min=0;
		for(int i=0;i<array2.length;i++){
			
			if(array2[i]<min){
				min=array2[i];
			}			
		}
		System.out.println(min);
	}

结果:

- 咦~好像出现问题了

-出现什么问题了呢?

-这数组里就没有0,最小值怎么会是0呢?

-因为最小值初始化的值是0,数组中没有比0小的数字要替换掉0,就输出0了

-那怎么办呢?

-把最小值初始化的值,变成数组中的第一个数就可以咯

改正后:

        // 用方式二静态化一个数组
		int[] array2 = { 9, 40, 6, 9, 8 };
		int min = array2[0];
		for (int i = 0; i < array2.length; i++) {

			if (array2[i] < min) {
				min = array2[i];
			}
		}
		System.out.println(min);

结果:

1.4.1 直角三角形(1) 

样式:

分析(以四行为例):

 外层行数由外层循环控制,外层循环循环一次,内层循环循环一圈。

一行的个数需控制内层循环来控制。

由图得,内行的个数与外行行数一直,即内层个数小于等于外行行数(或内层个数小于外行行数+1)

代码:

        Scanner scan=new Scanner(System.in);
    	System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=1;j<=i;j++){
				System.out.println("*");
				
			}
		}

结果:

-这似乎没有换行?

-所以,我们要加上换行。

-怎么加呢?

-想一想...是不是应该在内层循环的每一轮结束后加上换行

-那就是在外层循环里面,内层循环外面

-BINGO!

当我们加了

//ln 自带换行
System.out.println();

代码变为:

        Scanner scan=new Scanner(System.in);
		System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=1;j<=i;j++){
				System.out.println("*");
			}
			System.out.println();
		}

结果:

-哎呀!

-怎么还是不对啊!

-别着急,让我们细细看来

- 内层循环似乎在每一圈得每一次都换了行,那么,为什么会换行呢?

-是ln!

当我们去掉ln后

代码:

	Scanner scan=new Scanner(System.in);
		System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}

结果:

1.4.2 直角三角形(2) 

 样式:

分析(以四行为例) :

那不就是内行从4开始,大于0,然后减减,外行从1开始,小于等于4,然后加加嘛!

代码:

        Scanner scan=new Scanner(System.in);
		System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=length;j>0;j--){
				System.out.print("*");
			}
			System.out.println();
		}

结果:

-为什么啊!

-因为内层得j每次都是从4开始,到1结束

-那应该让它和 i有关系,从length-i开始?

-试一试吧!

代码:

        Scanner scan=new Scanner(System.in);
		System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=length-i;j>0;j--){
				System.out.print("*");
			}
			System.out.println();
		}

结果:

-少了一行... ...找找... ...

-当length等于4得时候,j=0,0不大于0,停止运行,所以,应该让j>=0

-对咯!

代码:

        Scanner scan=new Scanner(System.in);
		System.out.println("请输入想输入三角形的行数");
		int length=scan.nextInt();
		
		for(int i=1;i<=length;i++){
			for(int j=length-i;j>=0;j--){
				System.out.print("*");
			}
			System.out.println();
		}

 结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值