新手写作业,需求产生5个不重复的随机数,这个不重复写不出来了求助!

public class RandomTest {
    public static void main(String[] args) {
        int[]b=new int[5];
        for(int c=0;c<b.length;c++) {
            System.out.println(b[c]=new Random().nextInt(101));
        }
    }
}


import java.util.Random;
public class Test
{
	public static void main(String[] args){
		int[] a = new int[5];
		Random r = new Random();
		a[0] = r.nextInt(5); 
		for(int i = 1;i < 5;i++){
		//数组存入5个数
			a[i] = r.nextInt(5);
			for(int j = 0;j < i;j++){
			//如果满足条件就存入
				if(a[j]==a[i]){
					i--;
					break;
				}
			}
		}
		for(int i = 0;i < 5;i++){
			System.out.println(a[i]);
		}
	}

 

要用循环嵌套实现。

	public static void main(String[] args) throws IOException {
		 int[]b=new int[5];
		 Random rnd = new Random();
		 b[0] = rnd.nextInt(101);
        for(int c=1;c<b.length;c++) {
        	int num = 0;
        	boolean bFlag=false;
        	while(!bFlag) {
        		num = rnd.nextInt(101);
        		for(int i=0;i<c;i++) {
        			if(b[i] == num) {
        				bFlag=false;
        				break;
        			}else {
        				bFlag=true;
        			}
        		}
        	}
        	b[c]=num;
            
        }
        for(int a :b) {
        	System.out.println(a);
        }
	}

 

源程序

import java.util.Random;
public class MyRandom {
	public static void main(String[] args) {
		int n = 100;
		Random rand = new Random();
		boolean[] bool = new boolean[n];
		int randInt = 0;
		for(int i = 0; i < 5 ; i++) {
			do {
				randInt = rand.nextInt(n);
			}while(bool[randInt]);
			bool[randInt] = true;
			System.out.println(randInt);
		}
	}
}

运行结果:

每次都不一样

23
5
14
41
51

 

	public static void main(String[] args) throws IOException {
		 int[]b=new int[5];
		 Random rnd = new Random();
		 b[0] = rnd.nextInt(101);
        for(int c=1;c<b.length;c++) {
        	int num = 0;
        	boolean bFlag=false;
        	while(!bFlag) {
        		num = rnd.nextInt(101);
        		for(int i=0;i<c;i++) {
        			if(b[i] == num) {
        				bFlag=false;
        				break;
        			}else {
        				bFlag=true;
        			}
        		}
        	}
        	b[c]=num;
            
        }
        for(int a :b) {
        	System.out.println(a);
        }
	}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y