生成4个随机的不同的数字。JAVA语言。 为啥会产生重复的数字?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成4个随机的不同的数字。JAVA语言。 为啥会产生重复的数字?相关的知识,希望对你有一定的参考价值。
import java.util.Random;
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
n[i]=r.nextInt(10);
for(int j=0;j<i;j++)
System.out.println(j);
if(n[j]!=n[i])
if(j==i-1)
break;
else
n[i]=r.nextInt(10);
System.out.println(j);
continue;
for(int j=0;j<4;j++)
System.out.print(n[j]);
import java.util.Random;
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
n[i]=r.nextInt(10);
int j=0;
while(j<i)
if(n[i]!=n[j])
j++;
else
n[i]=r.nextInt(10);
j=0;
for(int j=0;j<4;j++)
System.out.print(n[j]);
我改好了。
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
int Num=r.nextInt(10);
boolean isrep=false;
for(int k=0;k<i-1;k++)
if(n[k]==Num)//说明前面已经有了这个数,不能要
isrep=true;//表示这个数是重复的
break;
if(isrep==false)//说明Num不重复
//可以写进数组
n[i]=Num;
else//否则是重复的,必须重新产生Num
i--;//i--相当于外层for循环会重新执行一遍
for(int j=0;j<4;j++)
System.out.print(n[j]);
呵呵,就这么简单,我直接写的,并没有测试,但一定会OK的。
那么楼主的问题出现在那里呢?很明显就是在判断产生的这个数是否与前面的书重复失败了,因为产生的这个数不经要与它的前一个数不同,
而且必须与它前面的所有书都不同,所以判断条件应该是与它前面的所有数惊醒比较,都不同则可以。
所以楼主的判断条件 n[i]!=n[i-1],那么它并不是与前面的所有数不重复的充要条件,而这仅仅只是一个必要条件。
以上是关于生成4个随机的不同的数字。JAVA语言。 为啥会产生重复的数字?的主要内容,如果未能解决你的问题,请参考以下文章