java不能重复集合_【Java编程练习】福利彩票23选5,数据不可重复(数组实现,非集合)...

模仿福利彩票23选5,随机生成5个不同的1~23的整数。(数组实现)

下面是我的思路:

package myHomework;

import java.util.Random;

public class Demo02 {

//(2)模仿福利彩票23选5,随机生成5个不同的1~23的整数。

public static void main(String[] args) {

Random ran =new Random();

int[] cp = new int[5];

System.out.println("23选5(1~23)开奖:");

int x=0;

for(int i=0;i<5;i++){//开始抽奖 i是抽奖的次数

while (true){

boolean OK=true;

x = ran.nextInt(23)+1;//随机一个数字

for(int e:cp){ //遍历数组检查是否有相同的

if(e==x){

OK=false;//有相同的数字 则roll出来的数字不能用 跳出循环开始重新Roll一次

break;

}

}

if(OK) break; //roll出来的数字是数组中没有的 可以直接使用

}

cp[i]= x;//roll出来的X是不重复的数字,所以直接赋值就可以

}

for(int e:cp){

System.out.print(e+" ");

}

}

}

之后听老师讲课,发现老师的代码要比我的简单,直接修改了下也打出来给大家做个参考:

package myHomework;

import java.util.Random;

public class Demo02 {

//(2)模仿福利彩票23选5,随机生成5个不同的1~23的整数。

public static void main(String[] args) {

Random ran =new Random();

int[] cp = new int[5];

System.out.println("23选5(1~23)开奖:");

int x=0;

for(int i=0;i<5;i++){//开始抽奖 i是抽奖的次数

x = ran.nextInt(23)+1;//随机一个数字

for(int e:cp){ //遍历数组检查是否有相同的

if(e==x){

i--;//相同,重新给cp[i]赋值;

}

}

cp[i]= x;

}

for(int e:cp){

System.out.print(e+" ");

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值