Einführung
Die Java-Methode isFinite() wird in der Java-Programmiersprache verwendet, um zu überprüfen, ob der übergebene double-Wert ein endlicher Wert ist oder nicht. Wenn der übergebene double-Wert einen endlichen Wert aufweist, wird der boolesche Wert true zurückgegeben, und für NaN- und unendliche Werte wird false zurückgegeben. In diesem Lab werden Sie lernen, wie die Java-Methode isFinite() verwendet wird.
Java-Umgebung einrichten
Wenn Java in Ihrem System noch nicht installiert ist, laden Sie die neueste Version herunter und installieren Sie sie. Überprüfen Sie die Installation, indem Sie den folgenden Befehl ausführen:
java -version
Eine Java-Klasse erstellen
Erstellen Sie in das Verzeichnis ~/project eine neue Java-Klasse namens DoubleIsFiniteDemo.
cd ~/project
touch DoubleIsFiniteDemo.java
Den Java-Code schreiben
In diesem Schritt werden wir den Java-Code schreiben, um mithilfe der isFinite()-Methode zu überprüfen, ob der übergebene double-Wert ein endlicher Wert ist oder nicht. Kopieren Sie den folgenden Code und fügen Sie ihn in DoubleIsFiniteDemo.java ein:
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);
}
}
Der obige Code deklariert vier double-Variablen d1, d2, d3 und d4 mit jeweils einem endlichen, einem positiven unendlichen, einem negativen unendlichen und einem NaN-Wert. Anschließend verwendet er die isFinite()-Methode, um zu überprüfen, ob jede der Variablen endlich ist oder nicht.
Den Java-Code kompilieren und ausführen
Kompilieren Sie den Code mit dem folgenden Befehl:
javac DoubleIsFiniteDemo.java
Nach der Kompilierung können Sie den Code mit dem folgenden Befehl ausführen:
java DoubleIsFiniteDemo
Die Ausgabe des Programms sollte wie folgt sein:
Is d1 finite? true
Is d2 finite? false
Is d3 finite? false
Is d4 finite? false
Das Programm anpassen
In diesem Schritt können Sie das Programm anpassen, um verschiedene Werte zu testen. Öffnen Sie DoubleIsFiniteDemo.java in Ihrem bevorzugten Texteditor und ändern Sie die den double-Variablen zugewiesenen Werte. Beispielsweise:
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 ist ein endlicher double-Wert.");
} else {
System.out.println("d1 ist kein endlicher double-Wert.");
}
if (b2) {
System.out.println("d2 ist ein endlicher double-Wert.");
} else {
System.out.println("d2 ist kein endlicher double-Wert.");
}
if (b3) {
System.out.println("d3 ist ein endlicher double-Wert.");
} else {
System.out.println("d3 ist kein endlicher double-Wert.");
}
if (b4) {
System.out.println("d4 ist ein endlicher double-Wert.");
} else {
System.out.println("d4 ist kein endlicher double-Wert.");
}
}
}
Den Java-Code erneut kompilieren und ausführen
Kompilieren Sie den Code erneut mit dem folgenden Befehl:
javac DoubleIsFiniteDemo.java
Nach der Kompilierung können Sie das angepasste Programm mit dem folgenden Befehl ausführen:
java DoubleIsFiniteDemo
Je nachdem, welche Werte Sie eingegeben haben, wird das Programm das Ergebnis entsprechend ausgeben.
Die isFinite()-Methode in einer benutzerdefinierten Methode verwenden
In diesem Schritt werden wir eine benutzerdefinierte Methode namens printIsFinite() erstellen, die einen double-Wert als Eingabe nimmt und mithilfe der isFinite()-Methode ausgibt, ob er endlich ist oder nicht.
Fügen Sie die folgende Methode innerhalb der DoubleIsFiniteDemo-Klasse hinzu:
public static void printIsFinite(double d) {
if (Double.isFinite(d)) {
System.out.println(d + " ist ein endlicher double-Wert.");
} else {
System.out.println(d + " ist kein endlicher double-Wert.");
}
}
Ändern Sie dann die main()-Methode wie folgt:
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);
}
Die main()-Methode übergibt jede der vier double-Variablen an die printIsFinite()-Methode, die dann überprüft, ob der Wert endlich ist oder nicht und gibt das Ergebnis entsprechend aus.
Den Java-Code erneut kompilieren und ausführen
Kompilieren Sie den Code erneut mit dem folgenden Befehl:
javac DoubleIsFiniteDemo.java
Nach der Kompilierung können Sie das Programm mit dem folgenden Befehl ausführen:
java DoubleIsFiniteDemo
Die Ausgabe des Programms sollte wie folgt sein:
1.23 ist ein endlicher double-Wert.
4.56 ist ein endlicher double-Wert.
-Infinity ist kein endlicher double-Wert.
NaN ist kein endlicher double-Wert.
Den Java-Code mit Grenzwerten testen
In diesem Schritt werden wir den Java-Code mit Grenzwerten testen, um zu sehen, wie die isFinite()-Methode funktioniert.
Ändern Sie die main()-Methode wie folgt:
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);
}
Die main()-Methode verwendet die Konstanten MIN_VALUE und MAX_VALUE der Double-Klasse, um den kleinsten und größten endlichen double-Wert jeweils an d1 und d2 zuzuweisen, und weist den positiven Unendlichkeits- und NaN-Wert jeweils an d3 und d4 zu.
Kompilieren und führen Sie den Java-Code erneut mit den folgenden Befehlen aus:
javac DoubleIsFiniteDemo.java
java DoubleIsFiniteDemo
Die Ausgabe des Programms sollte wie folgt sein:
4.9E-324 ist ein endlicher double-Wert.
1.7976931348623157E308 ist ein endlicher double-Wert.
Infinity ist kein endlicher double-Wert.
NaN ist kein endlicher double-Wert.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie die Java-isFinite()-Methode verwenden, um zu überprüfen, ob ein double-Wert ein endlicher Wert ist oder nicht. Sie haben auch gelernt, wie Sie das Programm anpassen, um verschiedene Werte zu testen, wie Sie die isFinite()-Methode in einer benutzerdefinierten Methode verwenden und wie Sie den Java-Code mit Grenzwerten testen.



