Day08 JavaSE

59 阅读1分钟

今日重点:随机数,冒泡排序,福彩双色球案例

一.随机数

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.总体需求

zongtixuqiu3.jpg 1.先把整体大框做出来 image.png

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];

image.png

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.输入红球不允许重复

image.png

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之间

image.png

if(!(red>=1&&red<=33)){  
System.out.println("红球只能在1~33范围之内");  
continue;  
}

5.篮球范围在1~16

image.png

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之间

image.png

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.红球必须正序输出

image.png

//需求五:红色球必须是升序输出  
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]));