Witam.
Mam metodę dodajDomek i w niej chcę do ArrayListy dodawać domki, wszystko niby działa, ale po uruchomieniu maina i wywołaniu metody dodajDomek mam coś takiego.
Ile domków chcesz dodać?
2
Podaj nazwę domku
Podaj liczbę pokoi
f
A tu kod błędu.
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Domek.dodajDomek(Domek.java:34)
at Main.main(Main.java:9)
Nie wiem czemu dwa polecenia wyświetlają się naraz po wpisaniu liczby domków do dodania.
Kod.
import java.util.ArrayList;
import java.util.Scanner;
public class Domek{
int liczbaPok = 1;
int liczbaLoz = 2;
int cenaLoz = 1;
String nazwa = "dads";
public Domek(){
}
public Domek(String nazwa, int liczbaPok, int liczbaLoz, int cenaLoz){
this.liczbaPok = liczbaPok;
this.liczbaLoz = liczbaLoz;
this.cenaLoz = cenaLoz;
this.nazwa = nazwa;
}
public String toString(){
System.out.println("Dodałeś z powodzeniem domek: ");
return nazwa+" ;Ilość pokoi: "+liczbaPok+" ;Ilość łóżek: "+liczbaLoz+ " ;Cena łózka: "+cenaLoz;
}
public void dodajDomek(){
Scanner skaner = new Scanner(System.in);
ArrayList<Domek> tablica = new ArrayList<Domek>();
System.out.println("Ile domków chcesz dodać?");
int ileDomkow = skaner.nextInt();
for(int i=0;i<ileDomkow;i++){
System.out.println("Podaj nazwę domku");
nazwa = skaner.nextLine();
System.out.println("Podaj liczbę pokoi");
liczbaPok = skaner.nextInt();
System.out.println("Podaj liczbę łóżek");
liczbaLoz= skaner.nextInt();
System.out.println("Podaj cenę łóżka");
cenaLoz =skaner.nextInt();
skaner.close();
tablica.add(i, new Domek(nazwa,liczbaPok,liczbaLoz,cenaLoz));
System.out.println(tablica);
}
//for (Domek d:tablica){
//System.out.println(tablica);
//}
}
}