Cześć!
Sprawa wygląda w ten sposób: Mam klasę MyRandomArray, która tworzy i wypełnia ją wartościami pseudo losowymi, wyświetla wartości tablicy oraz wypełnia tablice wartością podaną w metodzie.
class MyRandomArray {
static int[] createRandomArray(int size, int range){
int[] randomNumbers = new int[size];
for (int i = 0; i < randomNumbers.length; i++) {
randomNumbers[i] = (int) Math.ceil(Math.random() * range);
}
return randomNumbers;
}
static void printArray(int[] array){
for (int x: array){
System.out.print(x+ " ");
}
}
static void printlnArray(int[] array){
for (int x: array){
System.out.println(x);
}
}
static void addToArray(int[] array, int valueToAdd){
for (int i = 0; i < array.length; i++) {
array[i] = valueToAdd;
}
}
}
Próbowałem zrobić metodę createRandomArray w następujący sposób:
static int[] createRandomArray(int size, int range){
int[] randomNumbers = new int[size];
for(int x: randomNumbers){
x = (int) Math.ceil(Math.random() * range);
}
return randomNumbers;
}
jednakże dostawałem same zera, debugowalem program i ewidentnie wartości tablicy nie były zmieniane.
Zamieniłem pętle na zwykłego fora i teraz to działa poprawnie:
static int[] createRandomArray(int size, int range){
int[] randomNumbers = new int[size];
for (int i = 0; i < randomNumbers.length; i++) {
randomNumbers[i] = (int) Math.ceil(Math.random() * range);
}
return randomNumbers;
}
Dlaczego przy pętli foreach to nie działa? Jaki jest tego powód?