IT兄弟连 Java语法教程 数组 经典案例

案例需求:

编程实现双色球中奖号码的生成

1)应用知识:

●  数组的声明

●  数组的使用

●  for循环

2)需求解析:

在该程序中,需要定义一个长度为7的数组,用来存储中奖号码,使用Random对象获取1~33以内的随机数最为中奖号码,使用for循环循环6次产生6个普通的中奖号码存入数组中,最后使用Random对象随机生成一个1~16以内的中奖号码,需要注意,已经产生的中奖号码不能再次作为中奖号码,所以需要使用if分支结构控制。

3)需求实现:

import java.util.Random

public class ColorBall{

public static void main(String[] args){

    //声明一个数组用来存放中奖号码

    int[] arr = new int[7];

    //声明随机数对象

    Random rand = new Random();

    //使用for循环生成中奖号码

    for(int i = 0; i<6; i++){

         //获取一个随机数,表示中奖号码

         arr[i] = random.nextInt(33)+1;

         for(int j = i-1; j>=0; j--){

              //如果生成的随机数已经存在,则重新生成一个随机数

              if(arr[i] == arr[j]){

                   i--;

                   break;

              }

         }

    }

    //生成最后的特殊中奖号码

    arr[6] = rand.nextInt(16)+1;

    //遍历并输出所有中奖号码

    for(int num : arr){

         System.out.println(arr[i] + " ");

    }

    System.out.println();

}

}

案例需求:

编程实现任意正整数中重复数字出现的次数的统计

1)应用知识:

●  数组的声明

●  数组的使用

●  while循环

●  for循环

●  算术运算符

2)需求解析:

程序开始运行,提示用户输入一个正整数并使用Scanner对象接收,准备一个长度为10的数组,数组的下标对应了正整数中可能出现的数字,0~9。然后通过算符运算符将该正整数的每个位中的数值提取出来,如果用户输入的正整数中存在1时,则将数组中下标为1的位置上的数值加1,以此类推。最后遍历输出该数组中的元素,就可以实现任意正整数中重复数组出现次数的统计。

3)需求实现:

import java.util.Scanner;

public class NumCount{

    public static void main(String[] args){

        //提示用户输入一个正整数并使用变量记录

        System.out.println("请输入一个正整数");

        Scanner scan = new Scanner(System.in);

        int num = scan.nextInt();

        //准备一个长度为10的类型为int的一维数组

        int[] arr = new int[10];

        //拆分正整数中的每个数字并统计到一维数组中

        while(num > 0){

             arr[num%10]++;

             num /= 10;

        }

        //打印最终的统计结果

        for(int i = 0; i<arr.length; i++){

             if(arr[i] > 0){

                  System.out.println(i + "出现了" + arr[i] + "次!");

             }

        }

    }

}

案例需求:

编程实现使用冒泡排序堆数组中的元素从小到大排序

1)应用知识:

●  for循环

●  数组的声明

●  冒泡排序

2)需求解析:

冒泡排序的思想是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

3)需求实现:

public class BubbleSort{

    public static void main(String[] args){

        int[] arr = {6,5,7,4,8,3,9,2,0,1};

        for(int i = 0; i<arr.length; i++){

             for(int j = 0; j<arr.length-i-1;j++){

                  if(arr[j] > arr[j+1]){

                    int temp = arr[j];

                    arr[j] = arr[j+1];

                    arr[j+1] = temp;

                  }

             }

        }

        for(int num : arr){

             System.out.println(num + ",");

        }

    }

}

案例需求:

编程实现数组元素反转

1)应用知识:

●  数组的声明

●  数组的使用

●  for循环

2)需求解析:

实现数组元素的反转,就是将数组中的元素前后位置调换,第一个元素和最后一个元素调换位置,第二个元素和倒数第二个元素调换位置,依次类推,如果数组的长度是奇数,那么中间位置的数组元素就不需要调换位置。使用for循环循环数组长度的一半即可完成。

3)需求实现:

public class ArrReverse{

    public static void main(String[] args){

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

        for(int i = 0;i<arr.length/2;i++){

             int temp = arr[i];

             arr[i] = arr[arr.length-i-1];

             arr[arr.length-i-1] = temp;

        }

        for(int num : arr){

             System.out.println(num + ",");

        }

    }

}

案例需求:

编程实现将两个数组合并为一个数组

1)应用技术:

●  数组的声明

●  数组的使用

●  for循环

●  if分支结构

2)需求分析:

将两个数组合并成一个数组,那么这个新的数组的长度一定等于这两个数组长度之和,定义出这个新的数组,然后使用for循环依次将两个数组中的元素放入新数组即可。

3)需求实现:

public class ArrCombine{

    public static void main(String[] args){

        int[] arr1 = {1,2,3,4};

        int[] arr2 = {5,6,7,8};

        int[] arr3 = new int[arr1.length+arr2.length];

        for(int i = 0;i<arr3.length;i++){

             if(i<arr1.length){

                  arr3[i] = arr1[i];

             }

             if(i>=arr2.length){

                  arr3[i] = arr2[i-arr1.length];

             }

        }

        for(int num : arr3){

             System.out.println(num + ",");

        }

    }

}

猜你喜欢

转载自www.cnblogs.com/itxdl/p/11273876.html