はじめに
この実験では、Java でブール変数が false であるかどうかをチェックする方法を学びます。条件に基づいてプログラムの流れを制御するために不可欠な、ブール値を扱う基本的な技術を探ります。
実践的な例を通じて、等価演算子 (==) を使って false をチェックする方法、Boolean オブジェクトでテストする方法、および true と false の両方の条件を組み合わせてチェックする方法を練習します。この実験の終わりまでに、Java プログラムでブール変数を効果的に利用する方法をしっかりと理解するようになります。
等価演算子を使用して false をチェックする
このステップでは、Java の等価演算子 (==) を使ってブール変数が false であるかどうかをチェックする方法を探ります。ブール値を扱う方法を理解することは、条件に基づいてプログラムの流れを制御するため、プログラミングにおいて基本的なことです。
ブール変数は、true または false の 2 つの値のいずれかを保持することができます。これらの値は、多くの場合、比較や論理演算の結果です。
false をチェックする方法を示すために、簡単な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルが開いていない場合は、開きます。既存のコードを次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { boolean isComplete = false; if (isComplete == false) { System.out.println("The task is not complete."); } } }新しい部分を見てみましょう。
boolean isComplete = false;: この行は、isCompleteという名前のブール変数を宣言し、falseの値で初期化します。if (isComplete == false): これはif文で、特定の条件が真の場合にのみコードブロックを実行するために使用されます。ここでの条件はisComplete == falseです。==演算子は、isCompleteの値がfalseと等しいかどうかをチェックします。System.out.println("The task is not complete.");: この行は、条件isComplete == falseが真の場合にのみ実行されます。
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルで
javacコマンドを使ってプログラムをコンパイルします。javac HelloJava.javaエラーがなければ、何も出力されません。
javaコマンドを使ってコンパイルされたプログラムを実行します。java HelloJava次の出力が表示されるはずです。
The task is not complete.この出力は、条件
isComplete == falseが実際に真であり、ifブロック内のコードが実行されたことを確認します。
等価演算子 (==) を使ってブール値が false であるかどうかをチェックすることは、この条件を表現する簡単な方法です。次のステップでは、false 値をチェックする別の方法を探ります。
Boolean オブジェクトでテストする
前のステップでは、プリミティブなブール型を扱いました。Java には、プリミティブなブール型のオブジェクトラッパーである Boolean という対応するクラスもあります。多くの場合、プリミティブ型を使用することになりますが、特にコレクションやオブジェクトを必要とするメソッドを扱う際には、Boolean オブジェクトについて知っておくと便利です。
このステップでは、Boolean オブジェクトを使用する場合に false 値をチェックする方法を見ていきます。
WebIDE エディタで
HelloJava.javaファイルを開きます。現在のコードを次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { Boolean isProcessed = Boolean.FALSE; if (isProcessed.equals(false)) { System.out.println("The item has not been processed."); } } }変更点を見てみましょう。
Boolean isProcessed = Boolean.FALSE;: この行は、isProcessedという名前のBooleanオブジェクトを宣言し、ブール値falseを表す静的定数Boolean.FALSEで初期化します。if (isProcessed.equals(false)): Java でオブジェクトを扱う場合、一般的には==演算子ではなくequals()メソッドを使用して値を比較することが推奨されます。Booleanクラスのequals()メソッドは、オブジェクトのブール値が引数として渡されたブール値と等しいかどうかをチェックします。
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルで
javacを使用してプログラムをコンパイルします。javac HelloJava.java再び、何も出力されない場合はコンパイルが成功したことを意味します。
javaを使用してプログラムを実行します。java HelloJava次の出力が表示されるはずです。
The item has not been processed.これは、
equals()メソッドがBooleanオブジェクトisProcessedがブール値falseを保持していることを正しく識別したことを示しています。
プリミティブなブール型で == false を使用することは一般的で問題ありませんが、Boolean オブジェクトを比較する標準的な方法は .equals(false) を使用することです。プリミティブ型とそのオブジェクトラッパーの違いを理解することは、Java における重要な概念です。
True と False のチェックを組み合わせる
実際のプログラミングでは、複数の条件を同時にチェックする必要があることがよくあります。これには、&& (論理積) や || (論理和) などの論理演算子を使用して、true と false の両方の値に対するチェックを組み合わせることが含まれます。
このステップでは、true と false の両方の条件をチェックするようにプログラムを修正します。
WebIDE エディタで
HelloJava.javaファイルを開きます。現在のコードを次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { boolean isTaskStarted = true; boolean isTaskFinished = false; if (isTaskStarted == true && isTaskFinished == false) { System.out.println("The task has started but is not finished."); } if (isTaskStarted == false || isTaskFinished == true) { System.out.println("The task is either not started or is already finished."); } } }新しいコードを分解してみましょう。
boolean isTaskStarted = true;: ブール変数isTaskStartedを宣言し、trueに設定します。boolean isTaskFinished = false;: 別のブール変数isTaskFinishedを宣言し、falseに設定します。if (isTaskStarted == true && isTaskFinished == false): このif文は論理積演算子 (&&) を使用しています。このブロック内のコードは、両方の条件が真の場合にのみ実行されます。つまり、isTaskStartedがtrueであり、かつisTaskFinishedがfalseである場合です。if (isTaskStarted == false || isTaskFinished == true): このif文は論理和演算子 (||) を使用しています。このブロック内のコードは、少なくとも 1 つの条件が真の場合に実行されます。つまり、isTaskStartedがfalseまたはisTaskFinishedがtrueである場合です。
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルで
javacを使用してプログラムをコンパイルします。javac HelloJava.javajavaを使用してプログラムを実行します。java HelloJavaisTaskStartedとisTaskFinishedの初期値に基づいて、次の出力が表示されるはずです。The task has started but is not finished.最初の
if条件 (true && false) はtrueと評価されるので、最初のprintlnが実行されます。2 番目のif条件 (true || false) はfalseと評価されるので、2 番目のprintlnは実行されません。待ってください、出力は "The task has started but is not finished." だけですか?条件を再評価してみましょう。
isTaskStarted == true && isTaskFinished == false:true == trueはtrue、false == falseはtrueです。true && trueはtrueです。そのため、最初のメッセージが表示されます。isTaskStarted == false || isTaskFinished == true:true == falseはfalse、false == trueはfalseです。false || falseはfalseです。そのため、2 番目のメッセージは表示されません。
申し訳ありません、期待される出力は実際には最初の行だけです。これは、論理演算子が条件を組み合わせる仕組みを示しています。
isTaskStartedとisTaskFinishedの初期値を変更してプログラムを再実行し、出力がどのように変化するかを実験することができます。
論理演算子を使用してブールチェックを組み合わせることは、プログラムの流れを制御し、複数の要素に基づいて判断を下す強力な方法です。
まとめ
この実験では、Java でブール変数が false かどうかをチェックする方法を学びました。まず、等価演算子 (==) を使用して、ブール変数を false リテラルと直接比較する方法から始めました。これにより、if 文を使用して偽の条件をチェックし、プログラムの流れを制御する基本的な方法を実証しました。その後、簡単な Java プログラムでこの概念をテストし、ブール変数が実際に false の場合に期待される出力を観察するために、プログラムをコンパイルして実行しました。



