Java实现福彩36选7随机数(不含0,不包括重复值),并数组进行排序

方案一:

package jiangti;

import java.util.Arrays;
import java.util.Random;

public class Test0318 {
	public static void main(String args[])
	{
		int arr[] = new int[7] ;
		Random rd = new Random() ;
		for(int i = 0 ; i < 7 ; i ++)
		{
			arr[i] = rd.nextInt(36) ;
			if(arr[i] == 0)
			{
				i--;
			}
			for(int j =0 ; j < i ; j++)
			{
				if(arr[i] == arr[j])
				{
					i--;
					//只要i--,那么一定会使j<i,这个条件不成立,从而跳出循环
				}
			}
		}
		Arrays.sort(arr) ;
		System.out.println(Arrays.toString(arr));
	}
}

在这里插入图片描述

方案二:

package jiangti;
import java.util.Random;
import java.util.Arrays;
public class Test {
	public static void main(String[] args) {
		Random r=new Random();
		int arr[]=new int[7];
		int d,i=0;
		while(i<7) {
			d=r.nextInt(37);
			if(isRepeat(arr,d)) {
				arr[i++]=d;
			}
		}
		
		Arrays.sort(arr);
		for(int j=0;j<arr.length;j++) {
			System.out.print(arr[j]+" ");
		}
		System.exit(0);
	}
	public static boolean isRepeat(int temp[],int num) {
		//如果该元素的值等于0,则返回false。
		//返回false的话,则就不走if,不走if条件语句,i就无法加一,不能继续再一次的循环,直至该数不等于0为止
		if(num==0) {
			return false;
		}
		
		//让i的长度小于数组的长度,挨个判断数组是否相等,如果相等,则返回false,同上,则不走if语句
		for(int i=0;i<temp.length;i++) {
			if(temp[i]==num) {
				return false;
			}
		}
		//如果都成立,则返回true,说明该方法就执行了
		return true;
	}
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42249896/article/details/88661662