java小白 随机输出7以内的数字。要求无重复数字 求各位大神看看问题在哪!

刚开始学java

这是我写的代码

但输出的却还是有重复,求各位大神看看问题在哪!

import java.util.*;
class Ex01
{
public static void main(String args[])
 {
   int a[]=new int[7];
   int i=0;
   Random rd=new Random();
   a[0]=rd.nextInt(7);
   System.out.print(a[0]);
   for(i=1;i<a.length;i++)
   {
     a[i]=rd.nextInt(7);
     for(int j=0;j<=i;j++)
      {
         if(a[j]==a[i])  
         i=i-1;
         break;
      }
   }
   for(int k=1;k<i;k++)
      {System.out.print(" "+a[k]);}
 }
}

 

i=i-1;

直接就跳出了,要再判断减一之后还重不重复

 public static void main(String args[])


    {


        int a[]=new int[7];


        int i;


        Random rd=new Random();


        for(i=1;i<a.length;i++)


        {


            int i1 = rd.nextInt(7);//赋值的随机数


            a[i] = i1;


            while (true){//死循环 那这个数跟目前的数组里所有数比较


                int num = 0;//为0   就没有重复跳出执行下一次


                for (int j = 0; j < 7; j++) {//循环所有


                    if(a[j]==i1){//如果随机数和某一个位置的数相同


                        num=1;//改变为1  继续执行


                        i1 = i1-1;//随机数减一


                    }


                }


                if(num==0){//没有重复的  跳出  为数组赋值


                    a[i] = i1;


                    break;


                }


            }


        }


        for(int k=1;k<i;k++)


        {System.out.print(" "+a[k]);}


    }

 

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632