在Java中生成非重复随机数

时间:2015-02-18 04:27:04

标签: java

我正在尝试生成非重复随机数。请帮我识别代码中的问题以及解决方法。

package number;

public class name {

    public static void main(String[] args) 
    {
        int counter=0;
        boolean flag=true;
        int number=0;
        int a[] = new int[16];
        try
        {
            while(counter<16)
            {
                while(flag)
                {                           
                    number = (int)(Math.random()*16);
                    for(int i = 0; i < 16; i++)
                    if(a[i]==number)
                    {
                        continue;
                    }
                    else
                    {   
                        System.out.println(""+i+ "===="+ number);
                        a[counter]=number;  
                        flag= false;
                    }       
                }
                for(int i1=0;i1<16;i1++)
                {
                    for(int j=0;j<16;j++)
                    {
                        if(a[i1]==a[j])
                        {
                        }
                        else
                            System.out.print(" \t "+a[i1]);
                    }
                }
            }
            counter --;
        }
        catch(Exception e)
        {
            e.getStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您正在更改counter循环之外的while(counter<16)变量,您应该增加计数器counter++而不是减少它。