E' un problema di logica: tu hai scritto nel metodo ricarica() che deve chiedere un input... ogni volta che lo richiami, questo chiederà un input. E' corretto, gliel'hai detto tu di fare così.

Generalmente bisognerebbe separare la parte di richiesta input dal resto dell'elaborazione. Ad esempio, potresti creare una classe che si occupa di chiedere in input i valori. Questa classe, chiamata una sola volta quando serve, va a popolare i dati di una seconda classe (generalmente chiamata "bean", cioè un contenitore stupido di dati)... ogni volta che da qualche parte ti serve un dato (che l'utente ti ha già dato in input), lo andrai a prendere dal bean (non a richiederlo nuovamente all'utente).


Ciao.