Java- problem z programem

public class Main {

public static void main(String[] args) {
//5. Napisz program, który pobiera od użytkownika 6 liczb z puli 49.
// Program ma wziąć pod uwagę zestaw unikalnych sześciu liczb.
// Następnie program dokonuje losowań do czasu gdy wylosuje wybrane przez użytkownika zestawienie liczb.
// Program podaje po ilu latach i ilu dniach użytkownik wylosowałby liczby (np. potrzeba x lat i x dni).
// Zakładamy że losowania odbywają się codziennie (jedno losowanie na jeden dzień). * (z zastosowanie kolekcji)

Jestem na momencie pobierania danych od użytkownika i program zaczyna działać dopiero przy czwartym numerze. Ktoś wie w którym miejscu jest bląd?


List Lista_wylosowana = new ArrayList<>();
Scanner scanner = new Scanner(System.in);


System.out.println("Podaj 6 różnych liczb do wylosowania");

for (int i=0;i<=5;i++)
{
System.out.println("Podaj "+ (i+1) + " liczbe");
int a= scanner.nextInt();
int e=1;

if(a>49)
{System.out.println("Podane dane są niepoprawne. Wprowadź inną liczbę");
i=i-1;}
else if (a<1)
{System.out.println("Podane dane są niepoprawne. Wprowadź inną liczbę");
i=i-1;}
else
{
if(i==0)
Lista_wylosowana.add(a);
else {
for(int g=0; g 1)
{
Lista_wylosowana.add(a);
}
else
{ System.out.println("Podane dane są niepoprawne. Wprowadź inną liczbę");

i=i-1;}


}

}




}


}
}


Odpowiedź :

Odpowiedź:

import java.util.*;

public class zadanie {

   public static void main(String[] args) {

       Set<Integer> numbers = new HashSet<>();

       Scanner scanner = new Scanner(System.in);

       while (numbers.size() != 6) {

           int number = scanner.nextInt();

           if (number >= 0 && number <= 49) {

               numbers.add(number);

           }

       }

       System.out.println(numbers);

   }

}

Wyjaśnienie:

To jest zmieniona wersja Twojego kodu. Myślę, że duzo czytelniejsza i prostsza mimo wszystko. Użyłem Seta, który zapewni brak powtarzania się elementów. Dodaję nowe elementy w pętli while, dopóki nie będzie 6 różnych elementów w secie. Potem sprawdzam czy podany element mieści się w przedziale