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.
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.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; }
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.