Salve, ho questo metodo per acquisire dati da riga di comando, invocato con la visualizzazione di un testo msg che indica il dato da inserire.
codice:
public static int leggiInt(String msg) {
int res = 0; Scanner input = new Scanner(System.in);
boolean ok = false;
while (!ok) {
try {
System.out.print(msg);
res = Integer.valueOf(input.next());
ok = true;
} catch (Exception e) {
System.out.println("Occorre immettere un numero intero");
ok = false;
}
}
return res;
}
Funziona nel controllare che il dato inserito sia di tipo int, ma non controlla l'immissione di valori negativi che non hanno senso nel contesto dell'applicazione... Posso ovviare assegnando a res il valore assoluto del numero immesso ma vorrei invece invitare l'utente a inserire un numero positivo.
Ho provato a inserire qualcosa tipo if (Integer.valueOf(input.next()) > 0) ma questo causa un malfunzionamento del metodo main(), dato che in console non viene stampato il testo msg che invita a inserire un numero intero.
Il file importa java.io.IOException e il metodo main() prevede un throws IOException.