1. Utilizzando `scanner` (per input console):
Questo è il metodo più comune per ottenere l'input dell'utente dalla console.
`` `Java
import java.util.scanner;
Classe pubblica DoubleInput {
public static void main (string [] args) {
Scanner scanner =new scanner (system.in);
System.out.print ("Immettere un doppio valore:");
// Usa NextDouble () per leggere un doppio
double doubleValue =scanner.nextDouble ();
System.out.println ("hai inserito:" + doubleValue);
scanner.close (); // Importante:chiudere lo scanner al termine
}
}
`` `
Considerazioni importanti con `scanner`:
* Gestione degli errori: `NextDouble ()` lancia un `inputMismatchException` se l'utente inserisce qualcosa che non è un doppio valido (ad esempio, testo). Dovresti gestire questa eccezione utilizzando un blocco `Try-Catch` per impedire il crash del programma:
`` `Java
import java.util.inputmismatchException;
import java.util.scanner;
Classe pubblica DoubleInputWithExceptionHandling {
public static void main (string [] args) {
Scanner scanner =new scanner (system.in);
System.out.print ("Immettere un doppio valore:");
doppio doppio valore;
Tentativo {
doubleValue =scanner.nextDouble ();
} catch (inputMismatchException e) {
System.out.println ("Input non valido. Immettere un doppio valido.");
scanner.next (); // Consuma l'input non valido
ritorno; // o gestire l'errore in un altro modo
}
System.out.println ("hai inserito:" + doubleValue);
scanner.close ();
}
}
`` `
* `scanner.next ()`: La chiamata `scanner.next ()` all'interno del blocco `catch` è cruciale. Se si verifica un `inputmismatchException`, l'input non valido rimane nel buffer di` scanner '. `scanner.next ()` consuma questo input non valido, consentendo al programma di spingere di nuovo l'utente senza rimanere bloccato in un ciclo infinito.
2. Utilizzando `BufferedReader` (per la console o l'input del file):
`BufferedReader` è più efficiente per gli input di grandi dimensioni ma richiede più analisi manuale.
`` `Java
import java.io.BufferedReader;
import java.io.ioexception;
import java.io.inputstreamReader;
Classe pubblica DoubleInputBufferedReader {
public static void main (string [] args) {
BufferedReader Reader =new BufferedReader (new InputStreamReader (System.in));
System.out.print ("Immettere un doppio valore:");
Tentativo {
String input =reader.readline ();
Double DoubleValue =Double.ParseDouble (input);
System.out.println ("hai inserito:" + doubleValue);
} catch (ioException e) {
System.out.println ("Input di lettura degli errori:" + e.getMessage ());
} catch (numeraFormatexception e) {
System.out.println ("Input non valido. Immettere un doppio valido.");
}
}
}
`` `
Questo metodo utilizza `double.parseDouble ()` per convertire l'ingresso della stringa in un doppio. Include anche la gestione degli errori sia per `IOException` (errore di input/output) che` numeraFormatexception` (formato numero non valido).
3. Argomenti di comando:
Puoi passare un doppio valore come argomento di comando quando si esegue il programma Java.
`` `Java
Classe pubblica DoubleInputCommandline {
public static void main (string [] args) {
if (args.length> 0) {
Tentativo {
Double DoubleValue =Double.ParseDouble (Args [0]);
System.out.println ("hai inserito:" + doubleValue);
} catch (numeraFormatexception e) {
System.out.println ("Input non valido. Fornire un doppio valido come argomento della riga di comando.");
}
} altro {
System.out.println ("Fornisci un doppio valore come argomento di comando.");
}
}
}
`` `
Ricorda di compilare ed eseguirlo dal tuo terminale in questo modo:`Java DoubleInputCommandline 3.14159`
Scegli il metodo che si adatta meglio alle tue esigenze e ricorda di includere sempre una robusta gestione degli errori per rendere il tuo programma più resiliente. L'approccio "scanner" è generalmente preferito per la sua semplicità e le capacità di gestione degli errori integrati quando si prendono input dalla console. `BufferedReader" offre prestazioni migliori per file di grandi dimensioni. Gli argomenti della linea di comando sono utili per fornire input quando si eseguono il programma dal terminale.
Programmazione © www.354353.com