Introdução
O método isFinite() em Java é usado na linguagem Java para verificar se o valor double passado é um valor finito ou não. Ele retorna o valor booleano true se o valor double passado contiver um valor finito, e retorna false para valores NaN e infinitos. Neste laboratório, você aprenderá como usar o método isFinite() em Java.
Configurar o ambiente Java
Se você ainda não instalou o Java em seu sistema, baixe a versão mais recente e instale-a. Verifique a instalação executando o seguinte comando:
java -version
Criar uma classe Java
Crie uma nova classe Java chamada DoubleIsFiniteDemo no diretório ~/project.
cd ~/project
touch DoubleIsFiniteDemo.java
Escrever o código Java
Nesta etapa, escreveremos o código Java usando o método isFinite() para verificar se o valor double passado é um valor finito ou não. Copie e cole o seguinte código em DoubleIsFiniteDemo.java:
public class DoubleIsFiniteDemo {
public static void main(String[] args) {
double d1 = 100.0;
double d2 = Double.POSITIVE_INFINITY;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
boolean b1 = Double.isFinite(d1);
boolean b2 = Double.isFinite(d2);
boolean b3 = Double.isFinite(d3);
boolean b4 = Double.isFinite(d4);
System.out.println("Is d1 finite? " + b1);
System.out.println("Is d2 finite? " + b2);
System.out.println("Is d3 finite? " + b3);
System.out.println("Is d4 finite? " + b4);
}
}
O código acima declara quatro variáveis double d1, d2, d3 e d4 com valores finitos, infinito positivo, infinito negativo e NaN, respectivamente. Em seguida, ele usa o método isFinite() para verificar se cada uma das variáveis é finita ou não.
Compilar e executar o código Java
Compile o código usando o seguinte comando:
javac DoubleIsFiniteDemo.java
Após a compilação, você pode executar o código usando o seguinte comando:
java DoubleIsFiniteDemo
A saída do programa deve ser:
Is d1 finite? true
Is d2 finite? false
Is d3 finite? false
Is d4 finite? false
Personalizar o programa
Nesta etapa, você pode personalizar o programa para testar diferentes valores. Abra DoubleIsFiniteDemo.java no seu editor de texto favorito e modifique os valores atribuídos às variáveis double. Por exemplo:
public class DoubleIsFiniteDemo {
public static void main(String[] args) {
double d1 = 1.23;
double d2 = 4.56;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
boolean b1 = Double.isFinite(d1);
boolean b2 = Double.isFinite(d2);
boolean b3 = Double.isFinite(d3);
boolean b4 = Double.isFinite(d4);
if (b1) {
System.out.println("d1 is a finite double value.");
} else {
System.out.println("d1 is not a finite double value.");
}
if (b2) {
System.out.println("d2 is a finite double value.");
} else {
System.out.println("d2 is not a finite double value.");
}
if (b3) {
System.out.println("d3 is a finite double value.");
} else {
System.out.println("d3 is not a finite double value.");
}
if (b4) {
System.out.println("d4 is a finite double value.");
} else {
System.out.println("d4 is not a finite double value.");
}
}
}
Recompilar e executar o código Java
Compile o código novamente usando o seguinte comando:
javac DoubleIsFiniteDemo.java
Após a compilação, você pode executar o programa personalizado usando o seguinte comando:
java DoubleIsFiniteDemo
Dependendo dos valores que você inseriu, o programa exibirá o resultado correspondente.
Usar o método isFinite() em um método definido pelo usuário
Nesta etapa, criaremos um método definido pelo usuário chamado printIsFinite() que recebe um valor double como entrada e imprime se ele é finito ou não usando o método isFinite().
Adicione o seguinte método dentro da classe DoubleIsFiniteDemo:
public static void printIsFinite(double d) {
if (Double.isFinite(d)) {
System.out.println(d + " is a finite double value.");
} else {
System.out.println(d + " is not a finite double value.");
}
}
Em seguida, modifique o método main() da seguinte forma:
public static void main(String[] args) {
double d1 = 1.23;
double d2 = 4.56;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
printIsFinite(d1);
printIsFinite(d2);
printIsFinite(d3);
printIsFinite(d4);
}
O método main passa cada uma das quatro variáveis double para o método printIsFinite(), que então verifica se o valor é finito ou não e imprime o resultado correspondente.
Recompilar e executar o código Java
Compile o código novamente usando o seguinte comando:
javac DoubleIsFiniteDemo.java
Após a compilação, você pode executar o programa usando o seguinte comando:
java DoubleIsFiniteDemo
A saída do programa deve ser:
1.23 is a finite double value.
4.56 is a finite double value.
-Infinity is not a finite double value.
NaN is not a finite double value.
Testar o código Java com valores de limite
Nesta etapa, testaremos o código Java com valores de limite para ver como o método isFinite() funciona.
Modifique o método main() da seguinte forma:
public static void main(String[] args) {
double d1 = Double.MIN_VALUE;
double d2 = Double.MAX_VALUE;
double d3 = Double.POSITIVE_INFINITY;
double d4 = Double.NaN;
printIsFinite(d1);
printIsFinite(d2);
printIsFinite(d3);
printIsFinite(d4);
}
O método main usa as constantes MIN_VALUE e MAX_VALUE da classe Double para atribuir os menores e maiores valores double finitos, respectivamente, a d1 e d2, e atribui valores de infinito positivo e NaN a d3 e d4, respectivamente.
Recompile e execute o código Java usando os comandos abaixo:
javac DoubleIsFiniteDemo.java
java DoubleIsFiniteDemo
A saída do programa deve ser:
4.9E-324 is a finite double value.
1.7976931348623157E308 is a finite double value.
Infinity is not a finite double value.
NaN is not a finite double value.
Resumo
Neste laboratório, você aprendeu como usar o método isFinite() do Java para verificar se um valor double é um valor finito ou não. Você também aprendeu como personalizar o programa para testar diferentes valores, como usar o método isFinite() em um método definido pelo usuário e como testar o código Java com valores de limite.



