今日重点:随机数,冒泡排序,福彩双色球案例
一.随机数
1.Random在java.util包下(工具类包),是一个class,需要去new对象
2.创建对象:Random random=new Random();
3.获取整数随机数:int a=random.nextInt(10);
4.上段意思是获取10以内的随机数,范围在[0,10)包含0但是不包含10
代码演示
package Day08;
import java.util.Random;
public class Test02 {
public static void main(String[] args) {
Random random = new Random();
for (int i = 0; i < 100; i++) {
int j = random.nextInt(10);
System.out.println(j);
}
}
}
二.冒泡排序
1.相邻元素进行比较,谁大谁往后排
2.一共n个元素,一共需要循环n-1轮
package Day08;
import java.util.Arrays;
public class Test01 {
public static void main(String[] args) {
int[]arr={3,4,2,1,5};
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
三.案例:福彩双色球
1.总体需求
1.先把整体大框做出来
package Day08;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 0;//控制菜单
System.out.println("==========================");
System.out.println("欢迎使用双色球-Java控制台版");
System.out.println("===========================");
System.out.println();
do {
System.out.println("1.购买彩票");
System.out.println("2.查看购买的号码");
System.out.println("3.开奖");
System.out.println("4.查看中奖情况");
System.out.println("5.退出系统");
n = sc.nextInt();
switch(n){
case 1:
System.out.println("购买彩票");
break;
case 2:
System.out.println("查看购买的号码");
break;
case 3:
System.out.println("开奖");
break;
case 4:
System.out.println("查看中奖情况");
break;
case 5:
System.out.println("退出系统,程序结束");
System.exit(0);
break;
}
} while (n >= 0&&n<=5);
}
}
2.购买彩票,录入六个红球和一个蓝球和一个倍数,分别要列五组,采用二维数组的形 式,int[][]arr=new int[5][8];
package Day08;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 0;//控制菜单
System.out.println("==========================");
System.out.println("欢迎使用双色球-Java控制台版");
System.out.println("===========================");
System.out.println();
int[][]lottery=new int[5][8];
int count=0;//定义到第几个一维数组
do {
System.out.println("1.购买彩票");
System.out.println("2.查看购买的号码");
System.out.println("3.开奖");
System.out.println("4.查看中奖情况");
System.out.println("5.退出系统");
n = sc.nextInt();
switch(n){
case 1:
System.out.println("购买彩票");
//每个数组录入六个红球和1个篮球,然后一共有五注,所以定义一个二维数组
for(int i=0;i<6;i++){
System.out.println("请输入红球号码");
int red=sc.nextInt();
lottery[count][i]=red;
}
System.out.println("请输入篮球号码");
int blue=sc.nextInt();
lottery[count][6]=blue;
System.out.println("请输入倍数");
int beishu=sc.nextInt();
lottery[count][7]=beishu;
break;
case 2:
System.out.println("查看购买的号码");
break;
case 3:
System.out.println("开奖");
break;
case 4:
System.out.println("查看中奖情况");
break;
case 5:
System.out.println("退出系统,程序结束");
System.exit(0);
break;
}
} while (n >= 0&&n<=5);
}
}
3.输入红球不允许重复
switch (n) {
case 1:
System.out.println("购买彩票");
//需求1:每个数组录入六个红球和1个篮球,然后一共有五注,所以定义一个二维数组,录入六个红球一个篮球和一个倍数
for (int i = 0; i < 6; i++) {
//需求二:这六个红球不允许重复
do {
boolean isrepeat = false;
System.out.println("请输入红球号码");
int red = sc.nextInt();
//跟你录入的元素进行比较,重复就不输入,不重复就输入
for (int j = 0; j < i; j++) {
if (lottery[count][j] == red) {
isrepeat = true;
break;//break结束的是当前的for循环
}
}
if (isrepeat) {
System.out.println(red + "你输入的内容重复了,请重新输入");
continue;//continue结束的是当前循环,跳到下一次循环
} else {
lottery[count][i] = red;
break;
}
} while (true);//你要是录入的一直是重复的,一直输入
}
System.out.println("请输入篮球号码");
int blue = sc.nextInt();
lottery[count][6] = blue;
System.out.println("请输入倍数");
int beishu = sc.nextInt();
lottery[count][7] = beishu;
break;
4.红球范围在1~33之间
if(!(red>=1&&red<=33)){
System.out.println("红球只能在1~33范围之内");
continue;
}
5.篮球范围在1~16
do {
System.out.println("请输入篮球号码");
int blue = sc.nextInt();
if (blue >= 1 && blue <= 16) {
lottery[count][6]=blue;
break;
} else {
System.out.println("篮球号码取值为1~16,请重新输入");
continue;
}
}while(true);
6.倍数在1~99之间
do {
System.out.println("请输入倍数");
int beishu = sc.nextInt();
if(beishu>=1&&beishu<=99){
lottery[count][7] = beishu;
break;
}
else{
System.out.println("请输入一个有效的倍数,范围在1~99之间");
continue;
}
}while(true);
7.红球必须正序输出
//需求五:红色球必须是升序输出
for(int i=0;i<5;i++){
for(int j=0;j<5-i;j++){
if(lottery[count][j]>lottery[count][j+1]){
int temp=lottery[count][j];
lottery[count][j]=lottery[count][j+1];
lottery[count][j+1]=temp;
}
}
}
System.out.println(Arrays.toString(lottery[0]));