はじめに
この実験では、Java で数値が特定の範囲内にあるかどうかをチェックする方法を学びます。下限と上限を使用して数値範囲を定義する基本概念、範囲チェックを実行するための論理演算子の利用、および範囲比較で境界値を含める方法を理解することをカバーします。実践的な演習を通じて、これらの技術を Java コードに実装する実際の経験を積むことができます。
下限と上限で範囲を定義する
このステップでは、Java で下限と上限を使用して数値範囲を定義する方法を学びます。範囲を扱う方法を理解することは、プログラミングにおける基本的な概念であり、値が特定の数値セット内にあるかどうかをチェックすることができます。
範囲とは、単に開始点(下限)と終了点(上限)の間の数値のセットです。たとえば、1 から 10 の範囲には、1 から 10 までのすべての数値が含まれます。
範囲を定義して操作する簡単な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルが開いていない場合は、開きます。このファイルを新しいプログラム用に変更します。ファイルの内容全体を次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Print the defined range System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); } }このコードの新しい部分を見てみましょう。
int lowerBound = 10;:この行は、lowerBoundという名前の整数変数を宣言し、値 10 を割り当てます。これが範囲の開始点です。int upperBound = 50;:この行は、upperBoundという名前の整数変数を宣言し、値 50 を割り当てます。これが範囲の終了点です。System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");:この行は、lowerBoundとupperBoundの値を使用して定義された範囲を示すメッセージをコンソールに出力します。+記号は、テキスト文字列と変数値を結合するために使用されます。
ファイルを保存します(Ctrl+S または Cmd+S)。
次に、変更したプログラムをコンパイルしましょう。WebIDE の下部にあるターミナルを開き、
~/projectディレクトリにいることを確認します。次に、次のコマンドを実行します。javac HelloJava.javaエラーがなければ、コンパイルは成功しました。
最後に、プログラムを実行して出力を確認しましょう。ターミナルで次のコマンドを実行します。
java HelloJava次の出力が表示されるはずです。
Defined Range: [10, 50]これにより、プログラムが範囲の下限と上限を正しく定義して出力したことが確認できます。
次のステップでは、論理演算子を使用して数値がこの定義された範囲内にあるかどうかをチェックする方法を学びます。
論理演算子を使用して範囲チェックを行う
このステップでは、Java の論理演算子を使用して、前のステップで定義した範囲内に数値があるかどうかをチェックする方法を学びます。論理演算子は、ブール式(真または偽の式)を結合または変更するために使用されます。
下限と上限で定義された範囲内に数値があるかどうかをチェックするには、2 つの条件をチェックする必要があります。
- 数値は下限以上ですか?
- 数値は上限以下ですか?
これらの両方の条件が真である場合にのみ、数値は範囲内にあると判断されます。Java では、論理 AND 演算子 (&&) を使用してこれら 2 つの条件を結合します。
HelloJava.java プログラムを変更して、この範囲チェックを含めましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。mainメソッドを変更して、チェックする数値の変数と範囲チェックのロジックを含めます。既存のmainメソッドの内容を次のコードに置き換えます。public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Define the number to check int numberToCheck = 35; // Check if the number is within the range using logical operators boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound); // Print the result System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); System.out.println("Number to Check: " + numberToCheck); System.out.println("Is " + numberToCheck + " within the range? " + isInRange); }追加した部分は次の通りです。
int numberToCheck = 35;:この行は、整数変数numberToCheckを宣言し、値 35 を割り当てます。これが範囲に対してチェックする数値です。boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound);:これが範囲チェックの核心部分です。numberToCheck >= lowerBound:これは、numberToCheckがlowerBound以上であるかどうかをチェックします。numberToCheck <= upperBound:これは、numberToCheckがupperBound以下であるかどうかをチェックします。&&:これは論理 AND 演算子です。左側の条件と右側の条件の両方がtrueの場合にのみtrueを返します。- この式全体の結果(
trueまたはfalse)は、isInRangeという名前のブール変数に格納されます。
System.out.printlnの行は、現在チェックしている数値と範囲チェックの結果も出力します。
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで変更したプログラムをコンパイルします。
javac HelloJava.javaコンパイルしたプログラムを実行します。
java HelloJava次のような出力が表示されるはずです。
Defined Range: [10, 50] Number to Check: 35 Is 35 within the range? true35 は確かに 10 から 50 の範囲内(両端を含む)にあるため、プログラムは正しく
trueを出力します。
numberToCheck の値を範囲外の値(たとえば、5 または 60)に変更し、プログラムを再コンパイルして再実行して、出力がどのように変化するかを確認してみてください。
範囲に境界値を含める
前のステップでは、>=(以上)と <=(以下)の演算子を使用して、数値が範囲内にあるかどうかをチェックしました。これらの演算子は、範囲チェックに境界値(下限と上限)を含めるために重要です。
たとえば、範囲が [10, 50] の場合、数値が 10、50、または 10 から 50 の間の任意の数値であれば、その数値は範囲内とみなされます。もし >(より大きい)と <(より小さい)を代わりに使用した場合、範囲は (10, 50) となり、これは 10 と 50 自体が範囲に含まれないことを意味します。
この動作を境界値を使ってプログラムをテストすることで確認しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。下限と上限で範囲チェックをテストします。
mainメソッドを変更して、numberToCheckとしてlowerBoundとupperBoundの両方をテストするようにします。public class HelloJava { public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Test with the lower bound int numberToCheck1 = lowerBound; boolean isInRange1 = (numberToCheck1 >= lowerBound) && (numberToCheck1 <= upperBound); System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); System.out.println("Number to Check: " + numberToCheck1); System.out.println("Is " + numberToCheck1 + " within the range? " + isInRange1); System.out.println("---"); // Separator for clarity // Test with the upper bound int numberToCheck2 = upperBound; boolean isInRange2 = (numberToCheck2 >= lowerBound) && (numberToCheck2 <= upperBound); System.out.println("Number to Check: " + numberToCheck2); System.out.println("Is " + numberToCheck2 + " within the range? " + isInRange2); } }numberToCheck2をupperBoundに設定した 2 つ目のテストケースを追加しました。ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで変更したプログラムをコンパイルします。
javac HelloJava.javaコンパイルしたプログラムを実行します。
java HelloJava次のような出力が表示されるはずです。
Defined Range: [10, 50] Number to Check: 10 Is 10 within the range? true --- Number to Check: 50 Is 50 within the range? trueご覧のとおり、10(下限)と 50(上限)の両方が範囲内と正しく識別されています。これは、
>=と<=演算子を使用したためです。これにより、範囲チェックに境界値が含まれていることが確認できます。
プログラムで条件を定義する際に、範囲が境界を含む(閉区間)か含まない(開区間)かを理解することは重要です。>= と <= 演算子は閉区間の範囲を作成します。
まとめ
この実験では、整数型の変数を使用して下限と上限を設定することで、Java で数値範囲を定義する方法を学びました。単純な Java プログラムを変更してこれらの境界を宣言し、定義された範囲をコンソールに出力しました。また、出力のためにテキストと変数の値を組み合わせる方法を理解しました。この基本的なステップは、後に数値が指定された範囲内にあるかどうかをチェックするために重要です。



