for循环 如何使随机数不能重复

题目:

创建一个长度为5的int类型数组,

向里面保存5个10以内的随机数,

并且随机数不能重复 


代码:

public static void main(String[] args) 
	{
		




		Random r = new Random();
		int [] a = new int[5];
		for (int i = 0; i < a.length ;i++ )
		{	
			a[i] = r.nextInt(99)+2;
			if (f(a[i]))//如果不是质数就重来
			{
				
				i--;
			}
			for (int j = 0;j < i  ; j ++ )
			{
				if (a[i] == a[j])//如果跟之前一样就重来
				{
					
					i--;
				}
			}
			
		}
		
		f2(f3(a));//先通过方法f3排序,再打印
	}






	//判断是否是质数返回值为TRUE 时不是质数
	public static boolean f(int i)
	{
		
		boolean flag = false;
		
		for (int n = 2; n < i ; n++ )
		{
			if (i % n == 0)
			{	flag = true;
				break;
			}
			
			 
		}
		return flag;
	}
	
	//横向打印
	public static void f2(int a [])
	{
		System.out.print("{");
		for (int o: a )
		{
			if (o == a[a.length - 1])
			{
				System.out.print(o);
				break;
			}
			System.out.print(o + ",");
		}
		System.out.print("}");
	}




	//冒泡排序
	public static int[] f3(int[] a) 
	{
		int n = a.length;
		
		for (int i = 1; i < n; i++) 
		{ 
	
			for (int j = 0; j < n-1 ; j++) 
			{
				if (a[j] > a[j+1]) 
				{
					int temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
	
		return a;
	}





版权声明:本文为qq_36462955原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。