はじめに
Java では、Float クラスには equals() メソッドがあり、これは 2 つの float 値の等価性を比較するのに役立ちます。この実験では、このメソッドの実装、構文、およびさまざまな例について学びます。
Java では、Float クラスには equals() メソッドがあり、これは 2 つの float 値の等価性を比較するのに役立ちます。この実験では、このメソッドの実装、構文、およびさまざまな例について学びます。
まず、~/project ディレクトリに Java ファイルを作成します。それを FloatEquals.java と名付けましょう。
cd ~/project
touch FloatEquals.java
FloatEquals.java の main メソッド内に equals() メソッドを記述します。その後、2 つの Float オブジェクトを作成し、equals() メソッドを使用して比較します。最後に、結果をコンソールに出力します。
FloatEquals.java ファイルに次のコードを追加します。
public class FloatEquals {
public static void main(String[] args) {
// Implementing the equals() method
Float num1 = 10.5f;
Float num2 = 10.5f;
boolean equal = num1.equals(num2);
System.out.println("Are num1 and num2 equal? " + equal);
}
}
解説:ここでは、2 つの Float オブジェクト num1 と num2 を作成し、それぞれを 10.5f に設定しました。その後、equals() メソッドを使用して比較し、結果を equal という boolean 型の変数に格納しました。最後に、結果を文字列と連結して println() メソッドを使用してコンソールに出力しました。
これで Float オブジェクト用のメソッドを実装したので、ユーザーに 2 つの異なる Float 値を入力してもらい、equals() メソッドを使って比較するようにしましょう。
FloatEquals.java の main メソッドに追加したコードを次のコードに置き換えます。
import java.util.Scanner;
public class FloatEquals {
public static void main(String[] args) {
// Providing different values to the equals() method
Scanner sc = new Scanner(System.in);
System.out.print("Enter value 1: ");
Float num1 = sc.nextFloat();
System.out.print("Enter value 2: ");
Float num2 = sc.nextFloat();
boolean equal = num1.equals(num2);
System.out.println("Are the values equal? " + equal);
}
}
解説:ここでは、Scanner クラスとその nextFloat() メソッドを使って、ユーザーから 2 つの Float 値を入力として受け取っています。その後、equals() メソッドを使って比較し、結果を equal という boolean 型の変数に格納しています。最後に、文字列を結果と連結して println() メソッドを使ってコンソールに結果を出力しています。
ユーザーが浮動小数点数以外の値を入力した場合、Scanner クラスは java.util.InputMismatchException をスローする可能性があります。この例外を try-catch ブロックを使って処理しましょう。
FloatEquals.java の main メソッドに追加したコードを次のコードに置き換えます。
import java.util.Scanner;
public class FloatEquals {
public static void main(String[] args) {
// Handling errors with try-catch
try {
Scanner sc = new Scanner(System.in);
System.out.print("Enter value 1: ");
Float num1 = sc.nextFloat();
System.out.print("Enter value 2: ");
Float num2 = sc.nextFloat();
boolean equal = num1.equals(num2);
System.out.println("Are the values equal? " + equal);
} catch (java.util.InputMismatchException e) {
System.out.println("Invalid input. Please enter a float value.");
}
}
}
解説:ここでは、ユーザーから入力を受け取るコードを囲む try-catch ブロックを追加しました。ユーザーが浮動小数点数でない値を入力した場合、InputMismatchException がスローされ、catch ブロックによって処理されます。コンソールにエラーメッセージが表示されます。
最後に、出力を確認するためにプログラムをコンパイルして実行する必要があります。ターミナルで ~/project ディレクトリに移動し、次のコマンドを実行します。
javac FloatEquals.java && java FloatEquals
出力:
Enter value 1: 12.5
Enter value 2: 12.5
Are the values equal? true
ステップ 4 で実装した try-catch ブロックをテストしましょう。num1 の値を入力するよう促されたときに、浮動小数点数以外の値を入力してください。
出力:
Enter value 1: abc
Invalid input. Please enter a float value.
この実験では、Java の Float クラスの equals() メソッドについて学びました。その実装方法、構文、および使用例を学びました。また、try-catch ブロックを使ってエラーを処理する方法を学び、プログラムを誤った入力に対してテストしました。