我正在尝试生成非重复随机数。请帮我识别代码中的问题以及解决方法。
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();
}
}
}
答案 0 :(得分:2)
您正在更改counter
循环之外的while(counter<16)
变量,您应该增加计数器counter++
而不是减少它。