newbie93 ha scritto:
lo ho provato su netbeans. non mi da nessun tipo di "errore", ma non mi è possibile inserire le variabili da tastiera.
In NetBeans, per inserire l'input da tastiera devi semplicemente scrivere nella stessa tab dove vedi l'output. E' esattamente come se fosse un "prompt dei comandi".
newbie93 ha scritto:
mi potresti spiegare meglio a cosa serve questo procedimento, per favore?
Quando tu inserisci l'input da tastiera, scrivi qualcosa e poi premi INVIO per confermare. Se usi uno dei metodi tipo nextInt() / nextLong() ecc. lo Scanner legge tutto quello che hai scritto fino al primo "separatore" escluso (i separatori, se non diversamente specificato, per Scanner sono spazi, tabulazioni, fine riga, ecc compreso l'INVIO). Questo significa che lui legge dal buffer tutto quello che hai scritto fino all'INVIO, che è un separatore... ma questo separatore non viene "consumato" dalla lettura e rimane nel buffer. Alla prossima lettura, quindi, verrà preso quel che c'è ancora nel buffer (l'INVIO) e cercherà di assegnarlo alla variabile. A te sembrerà che il programma abbia saltato una lettura, mentre invece ha semplicemente consumato l'INVIO che è rimasto del buffer.
Per questo, dopo aver letto da tastiera usando uno dei metodi specifici per numeri e altri tipi primitivi, è necessario "pulire" il buffer dall'INVIO rimasto appeso.
La cosa si risolve, volendo, leggendo sempre a linee intere ( nextLine() ) e facendo il parsing a mano del valore. nextLine(), infatti, legge un'intera riga consumando il separatore di fine riga (l'INVIO).
Ciao.