Wątek przeniesiony 2016-12-01 23:28 z Java przez bogdans.

Pomijanie linii kodu w pierwszym przebiegu pętli

0
Dog[] piesy = new Dog[iloscPsow];
		
		for(int i=0;i<iloscPsow;i++){
			switch(i){
			case 0: System.out.println("Podaj imię pierwszego psa: ");
			break;
			case 1: System.out.println("Podaj imię drugiego psa: ");
			break;
			case 2: System.out.println("Podaj imię trzeciego psa: ");
			break;
			case 3: System.out.println("Podaj imię czwartego psa: ");
			break;
			case 4: System.out.println("Podaj imię piątego psa: ");
			break;
			}
			name = input.nextLine();
			switch(i){
			case 0: System.out.println("Podaj rasę pierwszego psa: ");
			break;
			case 1: System.out.println("Podaj rasę drugiego psa: ");
			break;
			case 2: System.out.println("Podaj rasę trzeciego psa: ");
			break;
			case 3: System.out.println("Podaj rasę czwartego psa: ");
			break;
			case 4: System.out.println("Podaj rasę piątego psa: ");
			break;
			}
			breed = input.nextLine();
			piesy[i]=new Dog(name,breed);
		}
System.out.println("Twoje psy to: ");
		for(int i=0;i<iloscPsow;i++){
			piesy[i].printName();
			piesy[i].printBreed();
		}

Ktoś mi powie dlaczego przy pierwszym przejsciu petli kiedy i=0 program calkowicie pomija linie

name = input.nextLine();

natomiast przy drugim i kolejnych przejsciach, kiedy i=1,2,3.... ta linia jest juz wykonywana? output programu to:

Ile psów chcesz podać?(max 5) 
2
Ilosc psów to 2
Podaj imię pierwszego psa: 
Podaj rasę pierwszego psa: 
imie1 rasa1
Podaj imię drugiego psa: 
imie2
Podaj rasę drugiego psa: 
rasa2
Twoje psy to: 
imie: 
rasa: imie1 rasa1
imie: imie2
rasa: rasa2
1

Pewnie przed tym kodem czytasz ilość psów metodą nextInt(), a ona zostawia w buforze klawiatury Enter. Wyczyść bufor metodą nextLine().

1 użytkowników online, w tym zalogowanych: 0, gości: 1