Existem várias maneiras de obter entrada de duplo valor na programação Java, dependendo de você estar lendo o console ou de um arquivo.
1. Usando `scanner` (para entrada do console): Este é o método mais comum para obter a entrada do usuário do console.
`` `Java
importar java.util.scanner;
classe pública DoubleInput {
public static void main (string [] args) {
Scanner Scanner =New Scanner (System.in);
System.out.print ("Digite um valor duplo:");
// Use NextDouble () para ler um duplo
Double DoubleValue =Scanner.NextDouble ();
System.out.println ("Você entrou:" + DoubleValue);
scanner.close (); // importante:feche o scanner quando terminar
}
}
`` `
Considerações importantes com `scanner`: *
Manuseio de erro: `nextDouble ()` lança uma `inputMismatchException` se o usuário inserir algo que não é um duplo válido (por exemplo, texto). Você deve lidar com essa exceção usando um bloco `try-catch` para impedir que seu programa trave:
`` `Java
importar java.util.inputMismatchException;
importar java.util.scanner;
classe pública DoubleInputWithExceptionHandling {
public static void main (string [] args) {
Scanner Scanner =New Scanner (System.in);
System.out.print ("Digite um valor duplo:");
duplo duplovalue;
tentar {
DoubleValue =scanner.NextDouble ();
} catch (inputMismatchException e) {
System.out.println ("Entrada inválida. Digite um dobro válido.");
scanner.Next (); // consome a entrada inválida
retornar; // ou lide com o erro de outra maneira
}
System.out.println ("Você entrou:" + DoubleValue);
scanner.close ();
}
}
`` `
*
`scanner.next ()`: O `scanner.Next ()` ligue dentro do bloco `Catch` é crucial. Se ocorrer um `inputMismatchException`, a entrada inválida permanecerá no buffer do` scanner '. `scanner.Next ()` consome essa entrada inválida, permitindo que o programa solicite o usuário novamente sem ficar preso em um loop infinito.
2. Usando `bufferredreader` (para entrada de console ou arquivo): O `BufferredReader` é mais eficiente para entradas grandes, mas requer mais análise manual.
`` `Java
importar java.io.bufferedReader;
importar java.io.ioException;
importar java.io.inputStreamReader;
classe pública DoubleInputBufferedReader {
public static void main (string [] args) {
BUBLEREDREADER LEITOR =new BufferredReader (new InputStreamReader (System.in));
System.out.print ("Digite um valor duplo:");
tentar {
String input =reader.readline ();
Double DoubleValue =Double.parseDouble (entrada);
System.out.println ("Você entrou:" + DoubleValue);
} catch (ioexception e) {
System.out.println ("Erro de leitura de entrada:" + e.getMessage ());
} catch (numberFormatexception e) {
System.out.println ("Entrada inválida. Digite um dobro válido.");
}
}
}
`` `
Este método usa `duplo.parseDouble ()` para converter a entrada da string em um duplo. Ele também inclui o manuseio de erros para `ioexception` (erro de entrada/saída) e` numberformatexception` (formato de número inválido).
3. Argumentos da linha de comando: Você pode passar um valor duplo como um argumento da linha de comando ao executar seu programa Java.
`` `Java
classe pública DoubleInputCommandline {
public static void main (string [] args) {
if (args.length> 0) {
tentar {
Double DoubleValue =Double.parseDouble (args [0]);
System.out.println ("Você entrou:" + DoubleValue);
} catch (numberFormatexception e) {
System.out.println ("Entrada inválida. Forneça um duplo válido como um argumento da linha de comando.");
}
} outro {
System.out.println ("Por favor, forneça um valor duplo como um argumento da linha de comando.");
}
}
}
`` `
Lembre -se de compilar e executar isso do seu terminal como este:`Java DoubleInputCommandline 3.14159`
Escolha o método que melhor atenda às suas necessidades e lembre -se de incluir sempre o manuseio robusto de erros para tornar seu programa mais resiliente. A abordagem `scanner` é geralmente preferida por sua simplicidade e recursos de manuseio de erros internos ao obter informações do console. `BufferredReader` oferece melhor desempenho para arquivos grandes. Os argumentos da linha de comando são úteis para fornecer entrada ao executar o programa a partir do terminal.