はじめに
この実験では、Java でブール式が有効かどうかをチェックする方法を学びます。まず、比較演算子を使用して単純なブール式を評価する方法から始めます。
次に、論理演算子を使用して単純な式を組み合わせることで、複合ブール式を扱う方法を探ります。最後に、Java コードで無効なブール式を扱う際に発生する可能性のあるエラーを識別して捕捉する方法を学びます。
単純なブール式の評価
このステップでは、Java のブール式について学び、単純なブール式を評価する方法を説明します。ブール式は、条件が真か偽かに基づいて判断を行うことができるため、プログラミングにおいて基本的な要素です。
ブール式は、true または false のいずれかに評価される文です。Java では、比較演算子を使用してこれらの式を作成します。以下はいくつかの一般的な比較演算子です。
==: 等しい!=: 等しくない>: より大きい<: より小さい>=: 以上<=: 以下
いくつかのブール式を評価する単純な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルが開いていない場合は、開きます。ファイルの内容全体を以下のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { int x = 10; int y = 20; boolean isEqual = (x == y); boolean isNotEqual = (x != y); boolean isGreater = (x > y); boolean isLess = (x < y); boolean isGreaterOrEqual = (x >= y); boolean isLessOrEqual = (x <= y); System.out.println("Is x equal to y? " + isEqual); System.out.println("Is x not equal to y? " + isNotEqual); System.out.println("Is x greater than y? " + isGreater); System.out.println("Is x less than y? " + isLess); System.out.println("Is x greater than or equal to y? " + isGreaterOrEqual); System.out.println("Is x less than or equal to y? " + isLessOrEqual); } }このコードでは、以下のことを行っています。
- 2 つの整数変数
xとyを宣言しています。 - いくつかのブール変数 (
isEqual、isNotEqualなど) を作成し、それぞれにブール式の結果を代入しています。 System.out.printlnを使用して、これらのブール式の結果を出力しています。
- 2 つの整数変数
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルで以下のコマンドを実行して、プログラムをコンパイルします。
javac HelloJava.javaエラーがなければ、
HelloJava.classファイルが作成されます。コンパイルされたプログラムを実行します。
java HelloJava各ブール式の結果を示す出力が表示されるはずです。
Is x equal to y? false Is x not equal to y? true Is x greater than y? false Is x less than y? true Is x greater than or equal to y? false Is x less than or equal to y? true
Java で単純なブール式を正常に評価できました!値を比較して true または false の結果を得る方法を理解することは、プログラムの流れを制御するために重要です。
複合式の扱い
このステップでは、論理演算子を使用して単純なブール式を組み合わせ、より複雑な式を作成する方法を学びます。これらは複合式 (compound expressions) と呼ばれ、一度に複数の条件をチェックすることができます。
Java は以下の論理演算子を提供しています。
&&: 論理 AND。両方の条件がtrueの場合にのみ、式はtrueになります。||: 論理 OR。少なくとも 1 つの条件がtrueの場合、式はtrueになります。!: 論理 NOT。この演算子は式のブール値を反転させます。式がtrueの場合、!を適用するとfalseになり、逆も同様です。
これらの論理演算子を使用するように HelloJava.java プログラムを変更しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。現在のコードを以下のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { int age = 25; int score = 85; boolean isStudent = true; // Using Logical AND (&&) boolean isEligibleForDiscount = (age > 18 && isStudent); System.out.println("Is eligible for student discount? " + isEligibleForDiscount); // Using Logical OR (||) boolean passedExam = (score >= 70 || age < 18); System.out.println("Passed the exam? " + passedExam); // Using Logical NOT (!) boolean isNotStudent = !isStudent; System.out.println("Is not a student? " + isNotStudent); // Combining multiple operators boolean complexCondition = (age > 20 && score > 80 || !isStudent); System.out.println("Complex condition result: " + complexCondition); } }この更新されたコードでは、以下のことを行っています。
- 新しい変数
age、score、およびisStudentを導入しています。 &&を使用して、誰かが学生割引の対象かどうかをチェックしています (18 歳より上で、かつ学生である)。||を使用して、誰かが試験に合格したかどうかをチェックしています (点数が 70 以上、または 18 歳未満)。!を使用して、isStudentブール値を反転させています。&&、||、および!を 1 つの式に組み合わせた例を示しています。
- 新しい変数
ファイルを保存します (Ctrl+S または Cmd+S)。
ターミナルでプログラムをコンパイルします。
javac HelloJava.javaコンパイルエラーがないことを確認してください。
コンパイルされたプログラムを実行します。
java HelloJava複合ブール式の結果を示す出力を確認してください。
Is eligible for student discount? true Passed the exam? true Is not a student? false Complex condition result: true
これで、論理 AND (&&)、OR (||)、および NOT (!) 演算子を使用して複合ブール式を作成し、評価する方法を学びました。これにより、Java プログラムでより高度な条件を構築することができます。
無効な式のエラーを捕捉する
このステップでは、Java で無効な式を評価しようとしたときに何が起こるか、およびコンパイラがこれらのエラーをどのように捕捉するかを探ります。一般的なエラーを理解することは、どのプログラミング言語を学ぶ際にも重要な部分です。
Java は強い型付け言語 (strongly-typed language) です。つまり、データの型が重要です。ブール式では、特に比較可能な、またはブール値に評価できるオペランドが必要です。ブール式で互換性のない型を使用しようとすると、コンパイルエラーが発生します。
コンパイラがどのように反応するかを確認するために、HelloJava.java プログラムに意図的にエラーを導入しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。無効な比較を含むようにコードを変更します。たとえば、ブール値と整数を比較してみましょう。
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error // boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); } }現時点ではエラーを引き起こす行をコメントアウトしていますが、次のステップでコメントを外します。コメントアウトされた行
boolean invalidComparison = (isStudent == age);は、等価演算子 (==) を使用してboolean型の変数 (isStudent) とint型の変数 (age) を比較しようとしています。Java では、boolean型とint型は異なるデータ型であり、このような直接の比較は許可されていません。ファイルを保存します (Ctrl+S または Cmd+S)。
次に、エラーを引き起こす行のコメントを外しましょう。コードを以下のように変更します。
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); System.out.println("Invalid comparison result: " + invalidComparison); } }再度ファイルを保存します。
ターミナルでプログラムをコンパイルしてみましょう。
javac HelloJava.javaJava コンパイラからエラーメッセージが表示されるはずです。正確なメッセージは Java のバージョンによって多少異なる場合がありますが、型の不一致または互換性のない型を示すものになります。
~/project/HelloJava.java:7: error: incomparable types: boolean and int boolean invalidComparison = (isStudent == age); ^ 1 errorこのエラーメッセージは、ファイル名 (
HelloJava.java)、行番号 (7)、およびエラーの説明 ("incomparable types: boolean and int") を示しています。これは、プログラムを実行しようとする前にコンパイラがミスを捕捉してくれる例です。エラーを修正し、プログラムを再びコンパイル可能にするには、無効な行を削除するかコメントアウトする必要があります。コードを行がコメントアウトされたバージョンに戻しましょう。
public class HelloJava { public static void main(String[] args) { int age = 25; boolean isStudent = true; // This line will cause a compilation error // boolean invalidComparison = (isStudent == age); System.out.println("Age: " + age); System.out.println("Is student: " + isStudent); } }ファイルを保存します。
再度プログラムをコンパイルします。
javac HelloJava.java今回はコンパイルが成功し、エラーメッセージは表示されないはずです。
コンパイルエラーを理解し、それを読む方法を習得することは、すべてのプログラマにとって重要なスキルです。Java コンパイラは、開発プロセスの早い段階で多くの一般的なミスを見つけるのに役立つ強力なツールです。
まとめ
この実験 (Lab) では、Java のブール式の基本を学びました。まず、ブール式とは何か、そしてそれが true または false に評価される仕組みを理解しました。次に、==、!=、>、<、>=、<= などの一般的な比較演算子を使用して、単純なブール式を評価する練習を行いました。実践的な例を通じて、整数型の変数を宣言し、これらの比較演算子を適用してブール式を作成し、結果のブール値を出力する方法を見てきました。
単純な式を基に、&& (AND)、|| (OR)、! (NOT) などの論理演算子を使用して単純な式を組み合わせることで、複合ブール式を扱う方法を探りました。これらの演算子の動作原理と、複雑な式の評価順序を制御するために括弧を使用する方法を学びました。最後に、無効なブール式から生じる潜在的なエラーを扱う重要性について取り上げ、式が正しく評価されない原因となる問題を特定して解決する方法を理解しました。



