案例需求:
编程实现双色球中奖号码的生成
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 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 for(int j = 0; 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 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 if(i arr3[i] = arr1[i]; } if(i>=arr2.length){ arr3[i] = arr2[i-arr1.length]; } } for(int num : arr3){ System.out.println(num + ","); } } }