一、Scanner练习
1、Scanner类练习代码
package com.atguigu.contact;import java.util.Scanner;/** * @Title: ScannerYooye.java * @Package com.atguigu.contact * @Description: TODO * @author Aifoosen E-mail: 597665748@qq.com * @date 2021年2月3日-下午3:31:04 * @version V1.0 */public class ScannerYooye { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("请输入您的姓名"); String name = scan.next(); System.out.println("您好"+name); System.out.println("请问您几岁了?"); int age = scan.nextInt(); System.out.println(age+"岁,是一个美好的年纪"); System.out.println("您体重多少呢?"); double weight = scan.nextDouble(); if(weight>60){ System.out.print(weight+"公斤,有点胖了哟啊^_^"); } if(weight<=50){ System.out.print(weight+"公斤,有些瘦啊^_^"); } System.out.println("您是否相中我了呢?(true/false)"); boolean isLove = scan.nextBoolean(); if(isLove){ System.out.println("开始交往吧"); }else{ System.out.println("拜拜了您呐"); } }}
2、运行效果展示
二、数组的介绍
package com.yooye.java;/* * 一、数组的概述 * 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名, * 并通过编号的方式对这些数据进行统一管理。 * * 2.数组相关的概念: * >数组名 * >元素 * >角标、下标、索引 * >数组的长度:元素的个数 * * 3.数组的特点: * 1)数组是有序排列的 * 2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 * 3)创建数组对象会在内存中开辟一整块连续的空间 * 4)数组的长度一旦确定,就不能修改。 * * 4. 数组的分类: * ① 按照维数:一维数组、二维数组、。。。 * ② 按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组 * * 5. 一维数组的使用 * ① 一维数组的声明和初始化 * ② 如何调用数组的指定位置的元素 * ③ 如何获取数组的长度 * ④ 如何遍历数组 * ⑤ 数组元素的默认初始化值 :见ArrayTest1.java * ⑥ 数组的内存解析 :见ArrayTest1.java */public class ArrayTest { public static void main(String[] args) { //1. 一维数组的声明和初始化 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[5];// int[] arr3 = new int[3]{1,2,3}; //也是正确的写法: int[] arr4 = {1,2,3,4,5};//类型推断 //总结:数组一旦初始化完成,其长度就确定了。 //2.如何调用数组的指定位置的元素:通过角标的方式调用。 //数组的角标(或索引)从0开始的,到数组的长度-1结束。 names[0] = "王铭"; names[1] = "王赫"; names[2] = "张学良"; names[3] = "孙居龙"; names[4] = "王宏志";//charAt(0)// names[5] = "周扬"; //3.如何获取数组的长度。 //属性:length System.out.println(names.length);//5 System.out.println(ids.length); //4.如何遍历数组 /*System.out.println(names[0]); System.out.println(names[1]); System.out.println(names[2]); System.out.println(names[3]); System.out.println(names[4]);*/ for(int i = 0;i < names.length;i++){ System.out.println(names[i]); } }}
三、数组的默认赋值
1、代码示例
package com.atguigu.java;/* * ⑤ 数组元素的默认初始化值 * > 数组元素是整型:0 * > 数组元素是浮点型:0.0 * > 数组元素是char型:0或'\u0000',而非'0' * > 数组元素是boolean型:false * > 数组元素是引用数据类型:null * * ⑥ 数组的内存解析 */public class ArrayTest1 { public static void main(String[] args) { //5.数组元素的默认初始化值 int[] arr = new int[4]; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } System.out.println("**********"); short[] arr1 = new short[4]; for(int i = 0;i < arr1.length;i++){ System.out.println(arr1[i]); } System.out.println("**********"); float[] arr2 = new float[5]; for(int i = 0;i < arr2.length;i++){ System.out.println(arr2[i]); } System.out.println("**********"); char[] arr3 = new char[4]; for(int i = 0;i < arr3.length;i++){ System.out.println("----" + arr3[i] + "****"); } if(arr3[0] == 0){ System.out.println("你好!"); } System.out.println("**********"); boolean[] arr4 = new boolean[5]; System.out.println(arr4[0]); System.out.println("**********"); String[] arr5 = new String[5]; System.out.println(arr5[0]); if(arr5[0] == null){ System.out.println("北京天气不错!"); } }}
2、输出结果
四、二维数组
1、二维数组介绍
package com.yooye.java;/* * 二维数组的使用 * * 1.理解: * 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。 * 其实,从数组底层的运行机制来看,其实没有多维数组。 * * 2. 二维数组的使用: * ① 二维数组的声明和初始化 * ② 如何调用数组的指定位置的元素 * ③ 如何获取数组的长度 * ④ 如何遍历数组 * ⑤ 数组元素的默认初始化值 :见 ArrayTest3.java * ⑥ 数组的内存解析 :见 ArrayTest3.java * * */public class ArrayTest2 { public static void main(String[] args) { //1.二维数组的声明和初始化 int[] arr = new int[]{1,2,3};//一维数组 //静态初始化 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}}; //动态初始化1 String[][] arr2 = new String[3][2]; //动态初始化2 String[][] arr3 = new String[3][]; //错误的情况 // String[][] arr4 = new String[][4];// String[4][3] arr5 = new String[][];// int[][] arr6 = new int[4][3]{{1,2,3},{4,5},{6,7,8}}; //也是正确的写法: int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}}; int[] arr5[] = {{1,2,3},{4,5},{6,7,8}}; //2.如何调用数组的指定位置的元素 System.out.println(arr1[0][1]);//2 System.out.println(arr2[1][1]);//null arr3[1] = new String[4]; System.out.println(arr3[1][0]); //3.获取数组的长度 System.out.println(arr4.length);//3 System.out.println(arr4[0].length);//3 System.out.println(arr4[1].length);//4 //4.如何遍历二维数组 for(int i = 0;i < arr4.length;i++){ for(int j = 0;j < arr4[i].length;j++){ System.out.print(arr4[i][j] + " "); } System.out.println(); } }}
2、二维数组默认初始值
package com.atguigu.java;/* * 二维数组的使用: * 规定:二维数组分为外层数组的元素,内层数组的元素 * int[][] arr = new int[4][3]; * 外层元素:arr[0],arr[1]等 * 内层元素:arr[0][0],arr[1][2]等 * * ⑤ 数组元素的默认初始化值 * 针对于初始化方式一:比如:int[][] arr = new int[4][3]; * 外层元素的初始化值为:地址值 * 内层元素的初始化值为:与一维数组初始化情况相同 * * 针对于初始化方式二:比如:int[][] arr = new int[4][]; * 外层元素的初始化值为:null * 内层元素的初始化值为:不能调用,否则报错。 * * ⑥ 数组的内存解析 * */public class ArrayTest3 { public static void main(String[] args) { int[][] arr = new int[4][3]; System.out.println(arr[0]);//[I@15db9742 System.out.println(arr[0][0]);//0// System.out.println(arr);//[[I@6d06d69c System.out.println("*****************"); float[][] arr1 = new float[4][3]; System.out.println(arr1[0]);//地址值 System.out.println(arr1[0][0]);//0.0 System.out.println("*****************"); String[][] arr2 = new String[4][2]; System.out.println(arr2[1]);//地址值 System.out.println(arr2[1][1]);//null System.out.println("*****************"); double[][] arr3 = new double[4][]; System.out.println(arr3[1]);//null// System.out.println(arr3[1][0]);//报错 }}
五、数组使用案例
1、示例代码
package com.yooye.java;/** * @Title: YooyeArray01.java * @Package com.yooye.java * @Description: TODO * @author Aifoosen E-mail: 597665748@qq.com * @date 2021年2月3日-下午3:52:01 * @version V1.0 */public class YooyeArray01 { public static void main(String[] args){ int[] arr = new int[] {8,3,1,6,7,5}; //提供电话号码中的某个数字 int[] index = new int[] {2,0,3,2,1,5,3,2,1,3,4}; //提供下标 String tel = ""; for (int i = 0; i < index.length; i++) { tel += arr[index[i]]; //拼接为完整电话号码 } System.out.println(tel); //控制台输出电话号码 }}
2、输出效果
六、学员分数等级练习
1、练习要求
/* * 2. 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 * */
2、练习代码
package com.yooye.java;import java.util.Scanner;/** * @Title: YooyeArray02.java * @Package com.yooye.java * @Description: TODO * @author Aifoosen E-mail: 597665748@qq.com * @date 2021年2月3日-下午4:02:30 * @version V1.0 */public class YooyeArray02 { public static void main(String[] args){ Scanner scan = new Scanner(System.in); //【1】定义一个用以获取用户输入信息的scanner System.out.println("请输入学生人数:"); int number = scan.nextInt(); //【2】获取输入的学生人数 int[] scorelist = new int[number]; //【3】创建一个用以记录学员成绩的数组 System.out.println("请输入"+number+"个学生的成绩"); int max = 0; //记录最高分 for(int i=0;i<number;i++){ //【3】让用户输入对应数量的学员成绩并归纳出最高成绩 scorelist[i] = scan.nextInt(); if(max<scorelist[i]){ max=scorelist[i]; } } char level; //【4】根据最高成绩的对比,得到每个学员你的level并进行输出 for (int i = 0; i < scorelist.length; i++) { if(max-scorelist[i]<=10){ level = 'A'; }else if(max-scorelist[i]<=20){ level = 'B'; }else if(max-scorelist[i]<=30){ level = 'C'; }else{ level = 'D'; } System.out.println(i+"号学员的分数是:"+scorelist[i]+",等级为"+level); } }}
3、运行结果
