Mi lehet a hiba az alábbi JAVA kódban?
A feladat az volna, hogy egy gráf csúcsait tároljam, de már az elején elakadtam. Bekérem, hogy hány csúcsot akar és utána ezeket egy listában szeretném tárolni, de futáskor a 0. helyre nem ír semmit, hanem üresen hagyja és rögtön utána kéri a következőt. Ezek után rendesen lefut, a maradék 4 nevet szépen letárolja. Mit rontottam el? Itt a kód:
Scanner sc= new Scanner(System.in);
System.out.println("Hány csúcsot szeretne megadni. Kérem írjon be egy számot: ");
int csucsok;
csucsok=sc.nextInt();
System.out.println(csucsok +" csúcs lesz");
List csl=new LinkedList();
for (int i = 0; i < csucsok; i++) {System.out.println("Adja meg a/az " +(i+1) + ". csúcsot!");
csl.add(sc.nextLine());
System.out.println("A csúcs: " + csl);
}
Hmm... én nextLine helyett nextInt-et próbálnék, vagy fent a nextInt helyett nextLine-t. Nem biztos, hogy ez a gond, csak egy tipp. :)
Arra gondolok, hogy lehet a nextInt nem ugrik át az újsor jelen, hanem előtte megáll, a nextLine pedig a szám (csúcsok száma) és az újsor jel között indul, ahol ugye nincs semmi, és itt megy ugye az újsor jelig.
Próbáld ki szerintem. :)
Valóban a nextLine paranccsal van valami baja, mert ha próbaképpen átírom nextInt-re akkor tökéletesen működik. Csak sajnos úgy nem megy bele a betű, csak számokat fogad el.
Ha csl.add(sc.nextLine()); sort beteszem a ciklus elé is akkor már működik, csak akkor meg az hagyja üresen az első helyet. Gyanítom, hogy ezt valahogy a ciklusban leszek kénytelen kikorrigálni némi felülírással, de ha van valami jobb megoldás nyugodtan írd meg még nagyon kezdő vagyok.
Köszönöm.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!