Ho un altro problema, solo che con un altro esercizio, ma sempre di questo tipo.
Vi posto il codice che mi dà problemi:
codice:
void SalvoDati(){
//memorizzo tutti i dati necessari negli array
System.out.print("Inserire il numero di libri: ");
numLib = sc.nextInt();
//inizializzo gli array dove andrò a memorizzare i dati necessari
autore = new String[numLib];
titolo = new String[numLib];
casa_editrice = new String[numLib];
disciplina = new String[numLib];
int i;
for(i=0;i<numLib;i++){ //inizio a memorizzare i dati negli array
System.out.println("Inserire l'autore del libro: ");
autore[i] = sc.nextLine();
System.out.println("Inserire il titolo del libro: ");
titolo[i] = sc.nextLine();
System.out.println("Inserire la casa editrice del libro: ");
casa_editrice[i] = sc.nextLine();
System.out.println("Inserire la disciplina del libro: ");
disciplina[i] = sc.nextLine();
}
}
Quando vado ad eseguire questo metodo, mi dà questo:
run-single:
Inserire il numero di libri: 1
Inserire l'autore del libro:
Inserire il titolo del libro:
Quindi si può facilmente notare che invece di aspettare finchè io inserisco l'autore, l'interprete mi salta la riga non aspettando nemmeno qualcosa in input. Perchè?
Se io metto come numero di libri >= 2, allora dopo il primo giro tutto si può memorizzare, l'autore incluso.