(Java) Program nie działa tak jak powinien

(Java) Program nie działa tak jak powinien
EX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Witajcie, mam problem ze swoim kodem. Jest on banalnie prosty ma za zadanie przyjąć od użytkownika 3 wartości następnie je wypisać w zdaniu. Przepraszam, że temat wątku nie określa mojego problemu, ale nie wiedziałem jak go dobrze ująć. :)

Kod:

Kopiuj
import java.util.Scanner;


public class Bang
{

	public static void main(String[] args) 
{
		try {
			Scanner in = new Scanner(System.in);
			System.out.println("Witaj, podaj swój wiek");
			int wiek = in.nextInt();
			System.out.println("Okej to teraz podaj jak masz na imię");
			String imie = in.nextLine();
			System.out.println("Teraz podaj prosze ile masz wzrostu");
			double wzrost = in.nextDouble();
			
			System.out.println("Witaj, " + imie + "masz " + wiek + " lat i masz " + wzrost + " wzrostu");
			
			
			
			
			in.close();
			
			
} finally {
       
		
}
	}

}

Kiedy skompiluję kod, wpisuje pierwszą wartość jest okej, kiedy klikam enter na raz wyskakują dwa zdania, gdzie powinno to wyglądać tak, że dopiero po przyjęciu kolejnej wartości pojawia się kolejne.
Dziękuję za pomoc.
(Do tekstu w System.out.println nie przywiązywałem póki co dużej uwagi aby to dobrze brzmiało dlatego może to brzmieć dziwnie) :)

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2

po: int wiek = in.nextInt(); w skanerze zostaje jeszcze <Enter> który jest odbierany poprzez String imie = in.nextLine();

EX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0
_13th_Dragon napisał(a):

po: int wiek = in.nextInt(); w skanerze zostaje jeszcze <Enter> który jest odbierany poprzez String imie = in.nextLine();

Niestety choćbym nie wiadomo ile nad Twoją wypowiedzią się głowił to nie jestem w stanie zrozumieć co masz na myśli. Jeżeli mógłbyś jaśniej. (W żadnym wypadku nie oczekuję gotowca, bo chciałbym zrozumieć swój błąd w kodzie).

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
3

Metoda nextInt() czyta do pierwszego białego znaku (spacja, Tab, Enter), resztę pozostawia w buforze klawiatury. Po ukazaniu się tekstu

Kopiuj
Witaj, podaj swój wiek

użytkownik wpisał 21 EnterMetoda nextInt() pobrała 21, pojawił się tekstOkej to teraz podaj jak masz na imię
Metoda nextLine() - nie czekając na działania użytkownika - pobrała z bufora klawiatury pusty String i usunęła Enter.

EX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0
bogdans napisał(a):

Metoda nextInt() czyta do pierwszego białego znaku (spacja, Tab, Enter), resztę pozostawia w buforze klawiatury. Po ukazaniu się tekstu

Kopiuj
Witaj, podaj swój wiek

użytkownik wpisał 21 EnterMetoda nextInt() pobrała 21, pojawił się tekstOkej to teraz podaj jak masz na imię

Metoda nextLine() - nie czekając na działania użytkownika - pobrała z bufora klawiatury pusty String i usunęła Enter.

Dziękuje bardzo! Zrozumiałem gdzie leży problem, wykonałem w kodzie jedną poprawkę i wszystko działa jak należy:

Kopiuj
String imie = in.nextLine();

Usunąłem "Line"

Kopiuj
String imie = in.next();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.