当前位置:   article > 正文

java数组案例

java数组案例

                                  目录

案例1:数组元素求最大值

案例2: 猜数字游戏    

案例3:随机排名

案例4:给数组排序(冒泡排序)


案例1:数组元素求最大值

分析:
数据拿到程序中去,用数组装起来。
定义一个变量用于记录最大值,这个变量建议默认存储第一个元素值作为参照。
遍历数组的元素,如果该元素大于变量存储的元素,则替换变量存储的值为该元素。
循环结束后输出最大值变量即可。
代码:
  1. public static void main(String[] args) {
  2. //1、定义一个静态初始化的数组,存出一批数据
  3. int[] array = {13,24,42,1,4,99,45};
  4. //2、定义一个变量用于存储最大值元素,建议使用数组中的第一个元素作为参考
  5. int max = array[0];
  6. //遍历数组
  7. for (int i = 0; i < array.length; i++) {
  8. if(max < array[i]){
  9. max = array[i];
  10. }
  11. }
  12. //输出最大值
  13. System.out.println("数组的最大值为:" + max);
  14. }

案例2: 猜数字游戏    

        需求

开发一个幸运小游戏,游戏规则如下:
游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字:
        未猜中提示:“未命中”,并继续猜测
        猜中提示:“运气不错,猜中了”,并输出该数据第一次出现的索引位置,最后把数组中的5个数据都输出看以下, 然后结束本游戏。
分析: 
动态初始化数组,存入 5 个随机的 1-20 之间的数据。
定义一个死循环,不断的猜数据。
遍历数组,判断数据是否在数组中, 如果在,进行对应提示并结束死循环;如果没有猜中,提示继续。

  1. public static void main(String[] args) {
  2. //1,定义一个动态初始化的数组存储5个随机的1-20之间的数
  3. int[] data = new int[5];
  4. //2、动态的生成5个随机数并存储在数组中
  5. Random r = new Random();
  6. for (int i = 0; i < data.length; i++) {
  7. data[i] = r.nextInt(20) + 1;
  8. }
  9. //3、使用一个死循环让用户猜测
  10. Scanner sc = new Scanner(System.in);
  11. OUT:
  12. while(true){
  13. System.out.println("请输入一个1-20之间的数:");
  14. int guessData = sc.nextInt();
  15. //4、遍历数组中的每个数据,看是否有数据与猜测的数据相同,相同代表猜中了,给出提示
  16. for (int i = 0; i < data.length; i++) {
  17. if(guessData == data[i]) {
  18. System.out.println("猜中了,该数据在数组中第一次出现的索引为:" + i);
  19. break OUT;
  20. }
  21. }
  22. System.out.println("当前猜测的数据在数组中不存在,请重新猜测!");
  23. }
  24. //5、输出数组的全部元素,让用户看到自己确实是猜中了某个数据
  25. for (int i = 0; i < data.length; i++) {
  26. System.out.print(data[i] + "\t");
  27. }
  28. }

案例3:随机排名

需求

某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。

请先依次录入5名员工的工号,然后展示出一组随机的排名顺序。

分析

定义一个动态初始化的数组用于录入数据。

遍历数组中的每个元素,每次随机一个索引值,让当前元素与该索引位置处的元素进行交换。

遍历输出数组中的内容即可。

  1. public static void main(String[] args) {
  2. //目标:键盘录入一组工号,最终要随机输出一组出来作为排名
  3. //1、动态初始化一个数组,存储5个工号
  4. int[] codes = new int[5];
  5. //2、定义一个循环,依次录入一个工号存入对应的位置
  6. Scanner sc = new Scanner(System.in);
  7. for (int i = 0; i < codes.length; i++) {
  8. //从键盘录入工号
  9. System.out.println("请您输入第" + (i + 1) + "个工号:");
  10. int code = sc.nextInt();
  11. //存到数组中去
  12. codes[i] = code;
  13. }
  14. //3、遍历数组中的每个元素,然后随机一个索引,让该元素与随机索引处的元素值进行交换
  15. Random r = new Random();
  16. for (int i = 0; i < codes.length; i++) {
  17. int index = r.nextInt(codes.length);
  18. int temp = codes[index];
  19. codes[index] = codes[i];
  20. codes[i] = temp;
  21. }
  22. //4、输出随机排名后的数组
  23. for (int i = 0; i < codes.length; i++) {
  24. System.out.print(codes[i] + "\t");
  25. }
  26. }

案例4:给数组排序(冒泡排序)

冒泡排序思想:每次从数组中找出最大值放到数组后面去 (升序)

                        (从头开始两两比较,把较大的元素与较小的元素进行交换,,每轮把当前最大的一个元素存入到数组当前的末尾。)

举例:n个数排序

                第一轮:第1个数和后面n-1个数比较

                第二轮:第2个数和后面n-2个数比较

                ······

                第n-1轮:第n-1个数和后面第n个数比较

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

代码:

  1. //冒泡排序实现从小到大排序
  2. public static void main(String[] args) {
  3. //1、定义一个数组,存储一些数据
  4. int[] arr = {5,2,3,1};
  5. //定义一个循环控制比较的轮数
  6. for (int i = 0; i < arr.length -1; i++) {
  7. for(int j = 0; j < arr.length -i -1; j++){
  8. //判断若前一个位置的元素大于后一个位置的元素,则交换
  9. if(arr[j] > arr[j + 1]){
  10. int temp = arr[j + 1];
  11. arr[j + 1] = arr[j];
  12. arr[j] = temp;
  13. }
  14. }
  15. }
  16. for (int i = 0; i < arr.length; i++) {
  17. System.out.print(arr[i] + "\t");
  18. }
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/805503
推荐阅读
相关标签
  

闽ICP备14008679号