Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

PytaniaDoSmugglera

Rozwiązany: Java, problem z danymi wejściowymi

Polecane posty

Witam, zacząłem niedawno naukę programowania w javie i doszedłem w nauce do wprowadzania danych wejściowych, przepisałem program z książki i wyglądał on mniej więcej tak:

import java.util.*;
public class Test
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Jak masz na imię? ");
String imie = in.nextLine();
System.out.print("Ile masz lat? ");
int wiek = in.nextInt();
System.out.print("Masz "+wiek+" lat i nazywasz się "+imie);
}
}

W tym programie jest wszystko w porządku, ale jeśli tylko zamienię kolejnością wprowadzanie imienia i wieku, czyli żeby wyglądało to tak:

import java.util.*;
public class Test
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Ile masz lat? ");
int wiek = in.nextInt();
System.out.print("Jak masz na imię? ");
String imie = in.nextLine();
System.out.print("Masz "+wiek+" lat i nazywasz się "+imie);
}
}

to po wprowadzeniu "wieku" omija mi całkowicie wprowadzenie "imienia" i przeskakuje od razu do wyświetlania ostatniej linii tekstu, a w miejscu "imie" jest pustka. Kompletnie nie wiem jak temu zaradzić. Proszę o waszą pomoc.

Na przyszłość - umieszczaj kod źródłowy w tagach |code|. - politan

Link do komentarza
Udostępnij na innych stronach

To znana przypadłość scannera, że przy łączeniu tych dwóch metod wynik jest nie zawsze taki, jak się oczekuje na pierwszy rzut oka. Jest to związane z tym jak naprawdę działają te metody: nextInt nie "zjada" końca linii, więc nextLine od razu go łapie i kończy działanie.

http://stackoverflow.com/questions/13102045/skipping-nextline-after-using-next-nextint-or-other-nextfoo-methods

Link do komentarza
Udostępnij na innych stronach

Gość
Temat jest zablokowany i nie można w nim pisać.


  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...