java数组案例:求最值,猜数字,随机排名,冒泡排序

求最大值

  • 数据:5,9000,10000,20000,9500,-5
  • 分析:1.把数据拿到程序中,用数组装起来。
    2.定义一个变量用于记录最大值,这个变量建议默认存储第一个元素值作为参照。
    3.遍历数组的元素,如果该元素大于变量存储的元素,则替换变量存储的值为该元素。
    //1.定义一个静态初始化的数据,存储一批数据
        int[] Score ={15,9000,10000,20000,9500,-5};
        
        //2.定义一个变量用于存储最大值元素,建议使用第一个元素作为参照。
        int max = Score[0];
        
        //3.遍历数组的每个元素,依次与最大值变量的数据比较,若较大,则替换。
        for (int i = 1; i < Score.length; i++) {
            if (Score[i]>max){
                max = Score[i];
            }
        }
        //4.输出最大值变量存储的数据
        System.out.println("数组的最大值是: "+max);

猜数字游戏

需求

开发一个幸运小游戏,游戏规则如下:游戏后台随机生成1-20之间的5个数(可以重复),然后让大家来猜数字:

  • 未猜中提示:“未命中”,并继续猜测
  • 猜中提示:“运气不错,猜中了”,并输出该数据第一次出现的位置,且输出全部5个数据,最终结束本游戏。

分析

  • 随机生成5个1-20之间的数据存储起来----使用动态初始化数组。
  • 定义一个死循环,输入数据猜测,遍历数组,判断数据是否在数组中,如果在,进行对应提示并结束死循环;如果没有猜中,提示继续猜测直到猜中为止。
       //1.定义一个动态初始化的数组存储5个随机的1-20之间的数据
        int[] data = new int[5];
        //2.动态的生成5个1-20之间的随机数并存入到数组中去
        Random r = new Random();
        for (int i = 0; i < data.length; i++) {
            data[i] = r.nextInt(20)+1;
        }
        //3.使用一个死循环让用户进行猜测
        Scanner sc=new Scanner(System.in);
        OUT:
        while (true){
            System.out.println("请您输入一个1-20之间的整数进行猜测:");
            int guessData = sc.nextInt();
            //4.遍历数组中的每个数据,看是否有数据与猜测的数据相同,相同代表猜中了,给出提示
            for (int i = 0; i < data.length; i++) {
                if (data[i]==guessData){
                    System.out.println("您已经猜中了该数据,运气不错了!您猜中的数据索引是:"+i);
                    break OUT;//结束了整个死循环,代表游戏结束了!
                }
            }
            System.out.println("当前猜测的数据在数组中不存在,请重新猜测!");
        }
        //5.遍历数组的全部元素,让用户看到自己确实是猜中了某个数据。
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i]+"\t");
        }

随机排名

需求

某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。请先依次录入5名员工的工号,然后展示出一组随机的排名顺序。

分析

  • 1.在程序中录入5名员工的工号存储起来
  • 2.依次遍历数组中的每个元素,随机一个索引数据,让当前元素与该索引位置处的元素进行交换。
   //键盘录入一组工号,最终要随机输出一组出来作为排名
        //1.动态初始化一个数组,存储5个工号
        int[] codes = new int[5];

        //2.定义一个循环,循环五次,依次录入一个工号存入相应的位置
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < codes.length; i++) {
            //正式录入工号
            System.out.println("请您输入第"+(i+1)+"个员工的工号");
            int code = sc.nextInt();
            //存入到数据中去
            codes[i] = code;
        }

        //3.遍历数组中每个元素,然后随机一个索引出来,让该元素与随机索引位置处的元素值进行交换
        Random r = new Random();
        for (int i = 0; i < codes.length; i++) {
            //当前遍历的元素值:codes[i]
            //随机一个索引的位置出来:codes[index]
            int index = r.nextInt(codes.length);

            //定义一个临时变量存储index位置处的值
            int temp = codes[index];
            codes[index] = codes[i];
            codes[i] = temp;}

            //4.遍历数组元素输出就是随机排名的结果
            for (int i = 0; i < codes.length; i++) {
                System.out.println(codes[i]+"\t");
            }

数组排序

冒泡排序

  • 每次从数组中找出最大值放在数组的后面去。java数组案例:求最值,猜数字,随机排名,冒泡排序_第1张图片
        //1.定义一个数组,存储一些数据
        int[] arr ={5,2,3,1};
        //          0 1 2 3

        //2.定义一个循环控制比较轮数
        for (int i = 0; i < arr.length-1; i++) {
            //i==1  比较的次数 3  j =0 1 2
            //i==2  比较的次数 2  j =0 1
            //i==3  比较的次数 1  j =0
         //3.定义一个循环控制每轮比较的次数,占位
            for (int j = 0; j <arr.length-i-1 ; j++) {
                //判断j当前位置的元素值 是否 大于后一个位置 若较大 则交换
                if (arr[j]>arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] =temp;
                }
            }
        }
        //遍历数组内容输出
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+"\t");
        }

你可能感兴趣的:(java,开发语言,后端)