1

书中的问题:

编写一个循环,用 1 到 100 之间的十个随机数填充数组值。为两个嵌套循环编写代码,用 1 到 100 之间的十个不同随机数填充值。

我的问题:为什么这需要一个嵌套循环?

我的代码:

import java.util.Arrays;
import java.util.Random;

public class ArrayPractice
{
    public static void main(String[] args)
    {
        Random random = new Random();
        int[] a = new int[10];
        int i;

        for (i = 0; i < 10; i++)
        { 

            a[i] = 1 + random.nextInt(100);

            System.out.print(a[i]+ " ");

    }

}
4

2 回答 2

1

请注意,您不需要仅仅为了使用数组而导入 Array。

到目前为止,您可以检查数组中的现有值 rnd,并在发现重复值后立即递减外部循环的计数器:

import java.util.Random;

public class ArrayPractice
{
    public static void main(String[] args)
    {
        Random random = new Random();
        int[] a = new int[10];

        for (int i = 0; i < 10; i++)
        { 
            int rnd = 1 + random.nextInt (100);
            a[i] = rnd;
            System.out.print (a [i] + " ");
            for (int j = 0; j < i; ++j)
            {
                if (a[j] == rnd) --i;
            }
        }
    }
}
于 2013-09-17T18:53:53.797 回答
1
import java.util.Arrays;
import java.util.Random;

public class ArrayPractice {
    public static void main(String[] args) {
        Random random = new Random();
        int[] array = new int[10];
        int index = 0;

        while(index < array.length){
            int number = 1 + random.nextInt(100);

            boolean found = false;
            for (int i = 0; i < index; i++) {
                int elm = array[i];
                if (elm == number) {
                    found = true;
                    break;
                }
            }
            if(!found){
                array[index++] = number;
            }
        }
        System.out.print(Arrays.toString(array));
    }
}
于 2013-09-17T18:54:41.377 回答