ercucchiaio ha scritto:
i nuove nextInt che chiedo non me li fa inserire
Se ad un nextInt() inserisci 123<invio>, ottieni un int 123 ma il/i carattere/i (dipende dalla piattaforma) del "newline" NON viene buttato via, rimane nel buffer interno di Scanner. Ad un prossimo nextInt() il newline verrebbe saltato/scartato, perché per default i whitespace sono delimitatori.
Ma se invece di un seguente nextInt fai un nextLine, esso consuma fino al newline. E visto che c'era già un newline in sospeso, lo prende subito come una riga vuota ("") e non ti chiede nulla. Questo
è così, è
by design ... non è un baco o errore. Funziona in questo modo, stop.
Per questo devi stare attento quando fai dei mix di nextLine e i nextXXX. Se il tuo è un programma abbastanza grande (non un esempietto/esercizietto di poche righe), magari puoi anche pensare di usare sempre e solo nextLine e fare tu le eventuali conversioni necessarie. E magari puoi anche incapsulare tutta la logica di input in una classe a sé stante, offrendo ad esempio metodi es. leggiInt(String prompt) che si fa carico di visualizzare un "prompt" e magari anche di ripete l'input se malformato. Queste decisioni/design spettano a te.