Ciao, dovrei fare in modo che il programma mi chieda per quanti anni (quindi solo un intero) voglio che mi chieda di inserire una somma da depositare. All'inizio avevo scritto questo e andava, con il problema però che quando mettevo un negativo veniva cmq accettato dandomi però poi il problema
codice:
static int Ins_Anni()    {
        int a=0;
        System.out.print("Inserire anni durata deposito: ");
        while (!scrivi.hasNextInt())
        {
            System.out.print("ERRORE - Inserire anni durata deposito: ");
            scrivi.nextLine();
        }
        a=scrivi.nextInt();
        scrivi.nextLine();
        return a;     }

A quel punto ho modificato il while in:
codice:
while (!scrivi.hasNextInt() || scrivi.nextInt()<=0)

però ho il problema che ogni volta che inserisco un numero, anche giusto, resta in attesa di un altro, prendendo per buono il secondo valore che inserisco.
P.S. Preciso che lo Scanner "scrivi" esiste, l'ho dichiarato come pubblico all'inizio della classe per poterlo usare ovunque, svuotando il buffer dopo ogni utlizzo.
P.S. Ho provato il while senza fargli fare il controllo per vedere se è un intero ma solo per vedere se è positivo ed ho lo stesso problema, in pratica il problema me lo dà il:
codice:
while (scrivi.nextInt()<=0)