JAVA 数组问题。一个主函数里用第二个while会不执行吗?

有一个问题就是从第二个while那里就不执行了,而且dos界面会卡主,不知道为什么?(/************到***********/可以取消注释带上运行没问题)
import java.util.Scanner;
import java.util.Random;

public class RandomReorder{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Random stochastic = new Random();

    System.out.println("How many random that you want? Enter the number: ");
    int many=scan.nextInt();
    System.out.println("What limit do you want? Enter the limit: ");
    System.out.println("Attention! The number of random array must less than  than limit");
    int limit=scan.nextInt();


    int[] array =new int[many];

    int A=0;
    int a=0;
    while(a<many){
        A = stochastic.nextInt(limit);

        for(int b=0;b<many;b++){
            if(array[b]==A){
                break;
            }
            else if(b==a){
                array[a] = A;
                a++;
                break;
            }
        }
    }

    System.out.println("\nThe array:");
    int count=0;
    for(int arr:array){
        System.out.print(arr + "\t");
        count++;
        if(count%10==0){
            System.out.println();
        }
    }
    ///下面随机抽取数组中的K个数

/**************************************************
int K=(int)stochastic.nextInt(many);//在总数是many个中找到随机K不超过many
int[] arrayK = new int[K];//arrayK数组长度就为K个

//{//
System.out.println("\n" + "Random K(With repeat):\n " + K );

///////////////////////////////以下是arrayK带重复的
int[] arrayKtemp = new int[K];
for(int i=0;i<K;i++){
arrayKtemp[i] = (int)stochastic.nextInt(K);
arrayK[i] = array[(arrayKtemp[i])];
}
System.out.println("\nRandom K array:(with repeat) ");//每十个分行
for(int i=0;i<K;i++){
System.out.print(arrayK[i] + "\t");
count++;
if(count%10==0){
System.out.println();
}
}
System.out.println("\nK array reorder:\n ");
int Klength=arrayK.length;
int total=Klength-1;
for(int i=0;i<Klength;i++){
for(int j=0;j<Klength;j++){
if(arrayK[i]<arrayK[j]){
int temp = arrayK[j];
arrayK[j] = arrayK[i];
arrayK[i] = temp;

            }
        }       
    }
    for(int arr:arrayK)
        System.out.print(arr + "\t");           

//}//
******************************/
//////////////////////////以上是arrayK带重复的

int K2=(int)stochastic.nextInt(many);

    System.out.println("\n" + "Random K2(without repeat):" + K2);
    int[] arrayK2 = new int[K2];
    int[] arrayKtemp2 = new int[K2];
    int B=0;
    int b=0;

//{
while(b<K2){
B = stochastic.nextInt(K2);
for(int s=0;s<K2;s++){
arrayKtemp2[s]=B;
arrayK2[s] = array[(arrayKtemp2[s])];

}

        for(int c=0;c<K2;c++){
            if(arrayK2[c]==B){
                break;
            }
            else if(c==a){
                arrayK2[b] = B;
                b++;
                break;
            }
        }
    }

    System.out.println("\nThe arrayK2(without repeat):\n");
    int count2=0;
    for(int arr:arrayK2){
        System.out.print(arr + "\t");
        count2++;
        if(count%10==0){
            System.out.println();
        }
    }
    int Klength2=arrayK2.length;
    System.out.println("\nK array reorder(without repeat):\n ");
    for(int i=0;i<Klength2;i++){
        for(int j=0;j<Klength2;j++){
            if(arrayK2[i]<arrayK2[j]){
            int temp = arrayK2[j];
            arrayK2[j] = arrayK2[i];
            arrayK2[i] = temp;

            }
        }       
    }
    for(int arr2:arrayK2)
        System.out.print(arr2 + "\t");  

//}
///////////////////////////

/************************
System.out.println("\nK array reorder:\n ");
int Klength=arrayK.length;
int total=Klength-1;
for(int i=0;i<Klength;i++){
for(int j=0;j<Klength;j++){
if(arrayK[i]<arrayK[j]){
int temp = arrayK[j];
arrayK[j] = arrayK[i];
arrayK[i] = temp;

            }
        }       
    }
    for(int arr:arrayK)
        System.out.print(arr + "\t");   

*******************************/

}
}

额 第一次发帖 版面好差,再发个

 import java.util.Scanner;
import java.util.Random;

public class RandomReorder{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        Random stochastic = new Random();

        System.out.println("How many random that you want? Enter the number: ");
        int many=scan.nextInt();
        System.out.println("What limit do you want? Enter the limit: ");
        System.out.println("Attention! The number of random array must less than  than limit");
        int limit=scan.nextInt();


        int[] array =new int[many];

        int A=0;
        int a=0;
        while(a<many){
            A = stochastic.nextInt(limit);

            for(int b=0;b<many;b++){
                if(array[b]==A){
                    break;
                }
                else if(b==a){
                    array[a] = A;
                    a++;
                    break;
                }
            }
        }

        System.out.println("\nThe array:");
        int count=0;
        for(int arr:array){
            System.out.print(arr + "\t");
            count++;
            if(count%10==0){
                System.out.println();
            }
        }
        ///下面随机抽取数组中的K个数
/**************************************************
        int K=(int)stochastic.nextInt(many);//在总数是many个中找到随机K不超过many
        int[] arrayK = new int[K];//arrayK数组长度就为K个

//{//
        System.out.println("\n" + "Random K(With repeat):\n " + K );        
        ///////////////////////////////以下是arrayK带重复的
        int[] arrayKtemp = new int[K];
        for(int i=0;i<K;i++){
            arrayKtemp[i] = (int)stochastic.nextInt(K);
            arrayK[i] = array[(arrayKtemp[i])]; 
        }
        System.out.println("\nRandom K array:(with repeat) ");//每十个分行
        for(int i=0;i<K;i++){
            System.out.print(arrayK[i] + "\t");
            count++;
            if(count%10==0){
                System.out.println();
            }
        }
        System.out.println("\nK array reorder:\n ");
        int Klength=arrayK.length;
        int total=Klength-1;
        for(int i=0;i<Klength;i++){
            for(int j=0;j<Klength;j++){
                if(arrayK[i]<arrayK[j]){
                int temp = arrayK[j];
                arrayK[j] = arrayK[i];
                arrayK[i] = temp;

                }
            }       
        }
        for(int arr:arrayK)
            System.out.print(arr + "\t");           
//}//
******************************/
        //////////////////////////以上是arrayK带重复的   
        int K2=(int)stochastic.nextInt(many);

        System.out.println("\n" + "Random K2(without repeat):" + K2);
        int[] arrayK2 = new int[K2];
        int[] arrayKtemp2 = new int[K2];
        int B=0;
        int b=0;

//{ 
        while(b<K2){
            B = stochastic.nextInt(K2);
            for(int s=0;s<K2;s++){
                arrayKtemp2[s]=B;
                arrayK2[s] = array[(arrayKtemp2[s])];   
            }

            for(int c=0;c<K2;c++){
                if(arrayK2[c]==B){
                    break;
                }
                else if(c==a){
                    arrayK2[b] = B;
                    b++;
                    break;
                }
            }
        }

        System.out.println("\nThe arrayK2(without repeat):\n");
        int count2=0;
        for(int arr:arrayK2){
            System.out.print(arr + "\t");
            count2++;
            if(count%10==0){
                System.out.println();
            }
        }
        int Klength2=arrayK2.length;
        System.out.println("\nK array reorder(without repeat):\n ");
        for(int i=0;i<Klength2;i++){
            for(int j=0;j<Klength2;j++){
                if(arrayK2[i]<arrayK2[j]){
                int temp = arrayK2[j];
                arrayK2[j] = arrayK2[i];
                arrayK2[i] = temp;

                }
            }       
        }
        for(int arr2:arrayK2)
            System.out.print(arr2 + "\t");  
//}
        ///////////////////////////

/************************
        System.out.println("\nK array reorder:\n ");
        int Klength=arrayK.length;
        int total=Klength-1;
        for(int i=0;i<Klength;i++){
            for(int j=0;j<Klength;j++){
                if(arrayK[i]<arrayK[j]){
                int temp = arrayK[j];
                arrayK[j] = arrayK[i];
                arrayK[i] = temp;

                }
            }       
        }
        for(int arr:arrayK)
            System.out.print(arr + "\t");   
*******************************/        
    }
}


你第一个while就已经死循环了,while里面嵌套的break只是跳出for循环,并没有跳出while循环,所以死循环了。。

你的需求是什么啊,感觉你的代码有种只能电脑看懂的感觉。。