注册 登录
编程论坛 JAVA论坛

while与for循环排除时似乎没有作用

求知的胖子 发布于 2017-06-25 19:55, 1100 次点击
    import java.util.*;
    public class examjava1{
                    /* *
                 * 这是main()方法.
                 * @param args传递至main()方法的参数
                */
            public static void main(String args[])   
                    {
                        int [] arr=new int [15];                    //定义长度为15的数组
                        System.out.print("arr:");
                            for(int i=0;i<arr.length;i++)                //for循环随机赋值0-99
                            {
                                arr[i]=(int)(Math.random()*100);
                                System.out.print("  "+arr[i]);
                            }
                            Arrays.sort(arr);
                            System.out.println("");
                            int j=0;
                            while(j==14){
                            for(int i=1;i<arr.length;i++)
                                {
                                       
                                        if(arr[j]==arr[i])
                                        {
                                            arr[i]=(int)(Math.random()*100);
                                        }
                                    
                                       
                                }
                                j++;
                                Arrays.sort(arr);
                                
                            }
                                for(int i=0;i<arr.length;i++)               
                            {
                                System.out.print(" "+arr[i]);
                            }
                           
                                    System.out.println("");
                                    System.out.println("s-min:"+arr[1]);
                                    System.out.println("certer:"+arr[7]);
                                    
                    }   
            }
        
2 回复
#2
求知的胖子2017-06-25 19:57
要求是让我随机赋值,并且保证所有元素唯一。
#3
林月儿2017-06-25 21:52
程序代码:
Random random = new Random();
        int [] arr=new int [100];                 //定义长度为100的数组
        for(int i=0;i<arr.length;i++) {           //for循环赋值0-99
            arr[i]=i;
        }
        for(int i = 0; i < 15; i++) {
                int t = random.nextInt(100-i)+i;
                arr[i]=arr[i]+arr[t];
                arr[t]=arr[i]-arr[t];
                arr[i]=arr[i]-arr[t];
//                System.out.println(t);
//                System.out.println(Arrays.toString(arr));
        }
        Arrays.sort(arr,0,14);
        for(int i = 0; i < 15; i++) {
            System.out.print(" "+arr[i]);
        }
其实有 更简单的处理,但是过程不透明,这样写对处理流程更加深刻说不定呢
1