Cześć,
utknąłem z prostym zadaniem i chciałbym prosić o wskazówkę. W poniższym programie wpisuję z konsoli 6 różnych liczb z przedziału <1-49>.
Następnie sprawdzam czy liczby się powtarzają. Jeśli tak, całą operację wykonuję od początku. W przypadku, jeżeli liczby się powtarzają, następuje zapętlenie w nieskończoność. O co chodzi i jak to rozwiązać. Warunek while z wykorzystaniem booleana jest najwidoczniej niepoprawny. Z kolei jeśli liczby są różne wszystko jest ok. P.S. w zadaniu chcę wykorzystać jedynie tablice.
Z góry dzięki za pomoc.
public class Draw {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean sameNum;
int i = 0;
int[] tab = new int[6];
do {
System.out.print("Podaj 6 różnych cyfr z przedziału (1 - 49):");
while (i < 6) {
int num = sc.nextInt();
if (49 < num || num < 1) {
System.out.println("Podaj liczbę z przedziału (1 - 49)");
num = sc.nextInt();
}
tab[i] = num;
i++;
}
System.out.println("Podałeś następujące liczby " + Arrays.toString(tab));
sameNum = false;
for (i = 0; i < 6; i++) {
for (int k = 0; k < 6; k++) {
if (tab[i] == tab[k]) {
if (i == k) {
continue;
}
sameNum = true;
break;
}
}
}
} while (sameNum != false);
}
}