一、数组的操作-循环
1、数组的操作 就是数组进行赋值与取值
赋值语法:数组名称[索引]=数据 例如:nums[10]
取值语法:数组名称[索引] 例如:nums[0]
2、数组的范围
0-数组的长度-1
3、注意点:
使用循环变量的时候 都是在遍历数组中的索引
二、案例
step01需求::需要定义一个数组 使用循环来存入五个同学的成绩 求出五个同学的平均分
step02分析
A.动态初始化 长度5
B.使用循环来给数组进行赋值 for循环
C.使用循环来获取数组的元素 for循环
step03
import java.util.Scanner; public class Test01 { public static void main(String[] args) { //实例化 Scanner input = new Scanner(System.in); //动态初始化一个数组 int [] scores = new int[5]; //使用循环给数组赋值 for(int i = 0; i < scores.length;i++){ System.out.println("请输入第"+(i+1)+"个同学的成绩"); int num =input.nextInt(); //将成绩存入数组中 scores[i]=num; } //使用循环来遍历数组,获取数据 //定义一个变量来记录总分 int sum=0; for(int j=0;j<scores.length;j++){ //获取数组中的数据 int s =scores[j]; sum +=s; } System.out.println(sum/scores.length); } }
三、数组操作-数据最大值
step01需求
step02分析:
step03
public class Test02 { public static void main(String[] args) { //静态初始化一个数组 int [] arrays={10,20,30,-30,50,100,550}; System.out.println(showMax(arrays)); System.out.println(showMin(arrays)); } //定义一个方法取最大值 public static int showMax(int [] arrays){ int max=-1; //非空数组的判断 if(arrays!=null&&arrays.length>0){ //获取初始化 max=arrays[0]; //使用循环依次比较,得出擂主 for (int i=0;i<arrays.length;i++){ if(arrays[i]>max){ //将值进行替换 max=arrays[i]; } } } return max; } }
四、数组操作-置换数组中的元素
step01需求 将数组中的元素进行置换 置换规则:第一个元素与最后一个元素置换 第二个元素与倒数第二个元素进行置换 依次进行
step02分析:
step03代码
五、数组操作-查找指定元素在指定区间的索引值
step01需求
step02分析
A.定义一个方法
访问修饰符 public static
返回值类型 int
参数: 数组 元素 开始索引 结束索引
方法体:
使用循环查找这个元素 返回对应的索引值
step03
public class Test04 { public static void main(String[] args) { //主函数 System.out.println(getIdex(new int[]{10, 20, 30, 40, 50, 60, 70, 80, 90, 200}, 50, 0, 8)); } public static int getIdex(int [] arrays,int num,int startIndex,int endIndex){ //数组非空判断 if(arrays!=null&&arrays.length>0){ //对开始索引和结束索引进行处理 if(startIndex>=0 &&startIndex<=endIndex &&endIndex<arrays.length){ for(int i=startIndex;i<endIndex;i++){ if(arrays[i]==num){ return i; } } } } //如果没有找到该元素返回-1 return -1; } }
六、数组操作-生成扑克牌
step01需求
step02分析
A.定义两个数组
一个数组是花色
一个数组是点数
B.使用嵌套for循环来获取数组中的花色和点数
step03代码
import java.util.Arrays; public class Test05 { public static void main(String[] args) { //定义一个数组记录花色 String [] color=new String[]{"♠","♥","♣","♦"}; //定义一个数组记录点数 String [] nums=new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; for(int i=0;i<color.length;i++){ for (int j=0;j<nums.length;j++){ String s =color[i]+nums[j]; System.out.print(s+"\t"); } System.out.println(""); } } }
七、冒泡排序
step01需求
step02分析
step03代码
import java.util.Arrays; public static void main(String[] args) { //定义一个数组 int [] arrays=new int[]{10,20,60,-5,-6,-100,80,900}; //定义一个for循环表示比较轮数 for(int i=0;i<arrays.length-1;i++){ //定义一个for循环表示次数 for (int j=0;j<arrays.length-1-i;j++){ //前后两个元素进行比较 if(arrays[j]>arrays[j+1]){ //进行数值得替换 int temp = arrays[j]; arrays[j]=arrays[j+1]; arrays[j+1]=temp; } } } System.out.println(Arrays.toString(arrays)); } }
八、数组操作-
step01ba需求:
数组元素 1 3 5 60 90 null(默认值)
向数组中插入一个值为35
数组元素 1 3 5 35 60 90 按照升序进行排序
step02分析:
step03代码:
import java.util.Arrays; import java.util.Scanner; public class Test06 { public static void main(String[] args) { //实例化 Scanner input = new Scanner(System.in); //定义一个数组 int [] arrays=new int[6]; //对数组进行赋值,留一个默认值 arrays[0]=1; arrays[1]=6; arrays[2]=90; arrays[3]=100; arrays[4]=839; //定义一个变量来记录 int index=-1; System.out.println("请输入需要插入的元素:"); int num= input.nextInt(); for (int i=0;i<arrays.length;i++){ if(arrays[i]>num){ index= i; //结束循环 break; } } if(index==-1){ index=arrays.length-1; }else{ //将数组中元素从前往后移动 for(int j=arrays.length-1;j>index;j--){ arrays[j]=arrays[j-1]; } } //进行值得插入 arrays[index]=num; //打印数组中的元素 System.out.println(Arrays.toString(arrays)); } }
九、数组综合案例
9.1外层框架
step01需求
step02分析
step03
import java.util.Scanner; public class Test07 { public static void main(String[] args) { //实例化 Scanner input =new Scanner(System.in); System.out.println("欢迎来到老王欢乐系统"); //定义一个标签 boolean flag =true; //使用循环 do { System.out.println("*******************"); System.out.println("1.我要订餐"); System.out.println("2.查看钱袋"); System.out.println("3.签收订单"); System.out.println("4.删除订单"); System.out.println("5.我要点赞"); System.out.println("6.退出系统"); System.out.println("*******************"); //提示客户输入选择编号 System.out.println("请您选择需要的服务:"); int noId=input.nextInt(); //使用分支结构 switch (noId){ case 1: System.out.println("1.我要订餐"); break; case 2: System.out.println("2.查看钱袋"); break; case 3: System.out.println("3.签收订单"); break; case 4: System.out.println("4.删除订单"); break; case 5: System.out.println("5.我要点赞"); break; case 6: System.out.println("6.退出系统"); //将标记设置为false flag=false; break; } if(noId!=6){ System.out.println("是否继续使用本系统,输入0继续使用!随机输入其他退出"); noId=input.nextInt(); if(noId==0){ flag=true; }else{ flag=false; } } }while(flag); System.out.println("您已退出系统,欢迎下次再来!"); } }
9.2查看钱袋
step01需求
step02分析:
step03代码:
9.2我要订餐
step01需求
step02分析
step03