/ / Масиви и вложени Loops - java, масиви, while-loop

Масиви и вложени Loops - java, arrays, while-loop

Въпрос в книга:

Напишете цикъл, който запълва стойности на масив с десет случайни числа между 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]+ " ");

}

}

Отговори:

1 за отговор № 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;
}
}
}
}

1 за отговор № 2
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));
}
}