La differenza in generale..non so come spiegare..
Se devo fare dei controlli del tipo che faccio inserire all'utente una sequenza di interi e questo scrive una lettera allora so che devo fare un ciclo while così:
ma perchè?codice:while (!tastiera.hasNextInt()) { tastiera.next(); out.print("Inserisci un intero") } a = tastiera.nextInt();