java数组案例

                                  目录

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

案例2: 猜数字游戏    

案例3:随机排名

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


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

分析:
数据拿到程序中去,用数组装起来。
定义一个变量用于记录最大值,这个变量建议默认存储第一个元素值作为参照。
遍历数组的元素,如果该元素大于变量存储的元素,则替换变量存储的值为该元素。
循环结束后输出最大值变量即可。
代码:
public static void main(String[] args) {

        //1、定义一个静态初始化的数组,存出一批数据
        int[] array = {13,24,42,1,4,99,45};

        //2、定义一个变量用于存储最大值元素,建议使用数组中的第一个元素作为参考
        int max = array[0];

        //遍历数组
        for (int i = 0; i < array.length; i++) {
            if(max < array[i]){
                max = array[i];
            }
        }
        //输出最大值
        System.out.println("数组的最大值为:" + max);

    }

案例2: 猜数字游戏    

        需求

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

public static void main(String[] args) {

		//1,定义一个动态初始化的数组存储5个随机的1-20之间的数
		int[] data = new int[5];
		//2、动态的生成5个随机数并存储在数组中
		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(guessData == data[i]) {
					System.out.println("猜中了,该数据在数组中第一次出现的索引为:" + i);
					break OUT;
				}
			}
				System.out.println("当前猜测的数据在数组中不存在,请重新猜测!");
		}
		//5、输出数组的全部元素,让用户看到自己确实是猜中了某个数据
		for (int i = 0; i < data.length; i++) {
			System.out.print(data[i] + "\t");
		}

	}

案例3:随机排名

需求

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

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

分析

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

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

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

public static void main(String[] args) {
		//目标:键盘录入一组工号,最终要随机输出一组出来作为排名
		//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++) {
			int index = r.nextInt(codes.length);
			int temp = codes[index];
			codes[index] = codes[i];
			codes[i] = temp;
		}

		//4、输出随机排名后的数组
		for (int i = 0; i < codes.length; i++) {
			System.out.print(codes[i] + "\t");
		}

	}

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

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

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

举例:n个数排序

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

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

                ······

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

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

代码:

//冒泡排序实现从小到大排序
	public static void main(String[] args) {
		//1、定义一个数组,存储一些数据
		int[] arr = {5,2,3,1};
		//定义一个循环控制比较的轮数
		for (int i = 0; i < arr.length -1; i++) {
			for(int j = 0; j < arr.length -i -1; 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");
		}
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值