• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java podstawy

VPS Starter Arubacloud
0 głosów
292 wizyt
pytanie zadane 20 lutego 2018 w Java przez itzluar Nowicjusz (220 p.)

Cześć, uczę sie javy od 2 dni i mam taki problem z odbieraniem danych, mianowicie pętla wykonuje się pierwszy raz idealnie tak jak chce przy drugim przejściu pętli od razu wyświetla się pierwszy println i nie ma opcji żeby wpisać dane tylko od razu wyświetla się drugi println.
Wiem że w c++ tez miałem kiedyś taki problem i wtedy działało get() ustawione na końcu pętli a tutaj nie mam pojęcia jak to rozwiązać 

public static void utworz(int a,Zwierze tab[])
    {
        Scanner odczyt = new Scanner(System.in);
        for(int i=0; i<tab.length; i++)
        {
            System.out.println("Podaj gatunek "+(i+1)+" zwierzecia");
            tab[i].gatunek=odczyt.nextLine();
            System.out.println("Podaj imie "+(i+1)+" zwierzecia");
            tab[i].imie=odczyt.nextLine();
            System.out.println("Podaj mase "+(i+1)+" zwierzecia");
            tab[i].masa=odczyt.nextDouble();
            System.out.println("Podaj wiek "+(i+1)+" zwierzecia");
            tab[i].wiek=odczyt.nextInt();
            System.out.println(" ");
        }
    }

 w efekcie daje 

Podaj gatunek 1 zwierzecia
Ryba
Podaj imie 1 zwierzecia
Nemo
Podaj mase 1 zwierzecia
1,200
Podaj wiek 1 zwierzecia
2
 
Podaj gatunek 2 zwierzecia
Podaj imie 2 zwierzecia
niewiem
Podaj mase 2 zwierzecia
10
Podaj wiek 2 zwierzecia
10

 

Miałby ktoś pomysł jak to rozwiązać? :))

2 odpowiedzi

+1 głos
odpowiedź 20 lutego 2018 przez ShiroUmizake Nałogowiec (46,300 p.)

Prawdopodobnie bufor danych masz nie wyczyszczony, wynika to z pewnej implementacji jednak znaków końca lini.

To powinno załatwić sprawę => 

in.nextLine();

Po więcej informacji zapraszam :

https://stackoverflow.com/questions/10604125/how-can-i-clear-the-scanner-buffer-in-java

 

komentarz 20 lutego 2018 przez itzluar Nowicjusz (220 p.)
Działa, wielkie dzięki :D
komentarz 20 lutego 2018 przez itzluar Nowicjusz (220 p.)
zadziałało też przeniesienie do środka pętli deklaracji scannera ale to troche bez sensu żeby wykonywała się tyle razy
0 głosów
odpowiedź 20 lutego 2018 przez spokojny Nałogowiec (28,630 p.)
To może podaj cały kod.

Podobne pytania

+1 głos
1 odpowiedź 129 wizyt
0 głosów
1 odpowiedź 721 wizyt
pytanie zadane 17 lipca 2019 w Java przez krystian1997 Obywatel (1,020 p.)
0 głosów
3 odpowiedzi 948 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...