java数组总结及键盘输入方法

键盘输入

  1. 导包:import java.util.Scanner;
  2. 创建输入对象:Scanner scanner = new Scanner(System.in);
  3. 将输入的数据存入变量中 :int value = scanner.nextInt;

数组

  1. 数组的相关概念

数组名
数组元素
角标(下标,索引)
数组的长度(元素的个数)

  1. 数组的特点

数组是有序排列的
数组的长度一旦确定,不能修改
数组是引用类型,数组的元素可以是别的类型

  1. 数组的分类

按维度 :一维数组,二维数组。。。。
按数组元素的类型 :基本数据类型,引用数据类型

4.一位数组的使用

1:一位数组的声明和使用
2:如何调用数组指定位置的元素
3:如何获取数组的长度
4:如何遍历数组
5:数组元素的默认初始化值

	int num;//声明
		num = 10; //初始化
		int id = 1001;//声明+初始化
		
		int[] ids;//声明
		//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
		ids = new int[]{1001,1002,1003,1004};
		//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[5];
		//错误的写法
		//int[] arr1 = new int[];
		//int[5] arr2 = new int[3]{1,2,3};
		//int[] arr3 = new int[3]{1,2,3};
		//正确的写法   前面中括号空着,后面要么用大括号写元素,要么中括号写元素的个数 
		//总结:数组一旦初始化完成,长度就确定了
		//也是正确的写法
		int[] number = {1001,1002,1003,1004};//类型推断
		
		//2:如何调用数组指定位置的元素
		//用角标,从0开始,到数组长度-1结束。
		names[0] = "王阳明";
		names[1] = "林动";
		names[2] = "月下小剑仙";
		names[3] = "李淳罡";
		names[4] = "周周";
		
		//3:如何获取数组的长度
		//属性:length
		System.out.println(names.length);//5
		System.out.println(ids.length);//4
		
		//4:遍历数组元素---循环
		//{
		for(int i = 0;i < names.length;i++){
			System.out.println(names[i]);
		}
		
		/*5:数组元素的默认初始化值
		 * >数组元素是整型(int,short,long,byte),默认是0
		 * >浮点型(float,double),0.0;
		 * >char类型:ASCII码值中的0,而不是'0'
		 * >boolean类型:false
		 * 
		 * >数组元素是引用类型(String):默认是null;
		 * 引用类型,默认是null
		 * */

		int[] arr = new int[4];
		for(int i = 0;i < 4;i++) {
			System.out.println(arr[i]);//输出是4个0
		}
  1. 二维数组的使用
    与一维数组类似

    1: 一位数组的声明和使用
    2:如何调用数组指定位置的元素
    3:如何获取数组的长度
    4:如何遍历数组
    5:数组元素的默认初始化值

public static void main(String[] args) {
		//二维数组的声明和初始化
		int[] arr = new int[]{1,2,3};
		//静态初始化
		int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
		//动态初始化
		String[][] arr2 = new String[3][2];
		//动态初始化第二种方式,不写行
		String[][] arr3 = new String[3][];
		arr3[0] = new String[4];
		
		//错误方式
		//String[][] arr4 = new String[][2];
		//下面也是正确的
		int [][] arr5={{1,2,3},{4,5},{6,7,8}};//类型推断,String不行
		//调用指定位置的元素
		System.out.println(arr1[0][1]);//2
		System.out.println(arr2[1][1]);//null
		
		//获取数组长度
		System.out.println(arr1.length);//3
		System.out.println(arr1[0].length);//3
		System.out.println(arr1[1].length);//2
		
		//遍历二维数组
		//主要是j的取值范围
		for(int i = 0;i < arr1.length;i++) {
			for(int j = 0;j < arr1[i].length;j++) {
				System.out.println(arr1[i][j] + " ");
			}
			System.out.println();
		}
		
		/*/默认初始化值
		//规定,二维数组分为外层数组元素,内层数组元素
		 * int[][] arr = new int[4][3];
		 * 外层元素:arr[0],arr[1],等
		 * 内层元素:arr[0][0],arr[1][2];等
		 * 
		*/
		 int[][] arr9 = new int[4][3];
		System.out.println(arr9[0]);//[I@694e1548  默认是地址值
		System.out.println(arr9[0][0]);//0
		//默认初始化值
		/*针对初始化方式一:int[][] arr = new int[4][4];
		 * 外层元素初始化值为:地址值
		 * 内层元素的初始化值为:与一维数组初始化情况相同
		 * 
		 * 针对初始化方式二:int[][] arr = new int[4][];
		 * 外层初始化值为:null
		 * 内层元素初始化值为:不能调用,否则报错
		 * */
	}

6.数组的练习

package com.learn.exerse;

import java.util.Scanner;

/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级
   * 成绩>=最高分-10   等级为“A”
 *  成绩>=最高分-20   等级为“B”
 *   成绩>=最高分-30   等级为“C”
 *    其余                		  等级为“D”
 *先读入学生人数,根据人数创建int数组,存放学生成绩
 * */

public class ArrayDemo2 {
	public static void main(String[] args) {
		//1.使用Scanner,读取学生个数
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入学生人数");
		int number = scanner.nextInt();
		
		//2.创建数组,动态初始化
		int[] scores = new int[number];
		//3.遍历数组,给数组元素赋值
		System.out.println("请输入" + number + "个学生成绩");
		for(int i = 0;i < scores.length;i++) {
			scores[i] = scanner.nextInt();
		}
		//4.获取数组元素的最大值
		int maxScores = scores[0];
		for(int i = 0;i < scores.length;i++) {
			if(maxScores < scores[i])
			maxScores = scores[i];//获取数组中的最大元素
		}
		//5。根据每个学生的成绩,输出等级和成绩
		/*for(int i = 0;i < scores.length;i++) {
			if(maxScores - scores[i] <=10)
				System.out.println("第" + (i + 1) + 
						"个学生的成绩为" + scores[i] + 
						",等级为" + "A");
			else if(maxScores - scores[i] <= 20)
				System.out.println("第" + (i + 1) + 
						"个学生的成绩为" + scores[i] + 
						",等级为" + "B");
			else if(maxScores - scores[i] <= 30)
				System.out.println("第" + (i + 1) + 
						"个学生的成绩为" + scores[i] + 
						",等级为" + "C");
			else
				System.out.println("第" + (i + 1) + 
						"个学生的成绩为" + scores[i] +
						",等级为" + "D");
		}
		*/
		for(int i = 0;i<scores.length;i++) {
			String level;
			if(maxScores - scores[i] <= 10)
				level = "A";
			else if(maxScores - scores[i] <= 20)
				level = "B";
			else if(maxScores - scores[i] <= 30)
				level = "C";
			else 
				level = "D";
			System.out.println("第" + (i+1) + "个学生的成绩为" + scores[i] + "等级为" + level);
		}
		}
	
}

杨辉三角

package com.learn.exerse;

/*第一行有1个元素,第n行有n个元素
 * 每一行的第一个元素和最后一个元素都是1
 * 从第三行开始,对于非第一个元素和最后一个元素的元素有
 * yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
 * 
 * */
public class YangHuiTest {
	//1.声明二维数组,初始化
    //2给数组元素赋值
	//3遍历
	public static void main(String[] args) {
	int[][] yanghui = new int[10][];
	for(int i = 0;i < yanghui.length;i++) {
		yanghui[i] = new int[i + 1];
		//2.1给首末元素赋值
		yanghui[i][0] = yanghui[i][i] = 1;
		//给每行的非首末元素赋值
		if(i > 1) {
			for(int j = 1;j < yanghui[i].length-1;j++) {
				yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
			}
		}
	}
	for(int i = 0;i < yanghui.length;i++) {
		for(int j = 0;j < yanghui[i].length;j++) {
			System.out.println(yanghui[i][j]);
		}
	}
	
	}

}

好了,先写这么多

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值