Boolean Operators in java tutorial and MCQ
Table of Contents
Study and learn Java MCQ questions and answers on Java Boolean Logical Operators and their priorities. Attend job interviews easily with these Multiple Choice Questions.
Boolean Operators in java
Java Boolean Logical Operators work with boolean data type values. Some logical operators work with a single Operand while others work with two Operands. There are bitwise logical operators too which we discuss later.
Boolean Logical Operators with Priority in java
The list of Boolean Logical operators is given below. Note that the Logical Unary NOT (!) has got the highest priority among all other logical operators. The assignment operator has the least priority.
Note 1: Except for Logical NOT(!), all other logical operators have less priority than Arithmetic and Relational operators.
Priority | Operator | Simple Name |
---|---|---|
1 | ! | Logical Unary NOT |
2 | & | Logical AND |
3 | ^ | Exclusive OR or XOR |
4 | | | Logical OR |
5 | && | Logical Short Circuit AND |
6 | || | Logical Short Circuit OR |
7 | op= | Compound Assignment Operator&=, |=, ^= |
7 | = | Assignment |
Boolean Operators
Note 2: Generally, software programmers use only Short Circuit Logical operators compared to normal logical operators for good performance and to differentiate bitwise AND and OR from Logical AND and OR operators. If you use AND (&) operator, it generally means you are using it in the context of bitwise operations.
Example with Precedence or Priority Explained
In the below code example, Relational operator (>) takes higher priority. Short Circuit AND (&&) has got the least priority.
class OperatorPrecedence { public static void main(String args[]) { int a=5; int b=9; boolean c = a > 4 && true & b !=9; // Priority order: >, !=, &, && // (a>4) && true & b!=9 // true && true & b==9 // true && true & false // true && false //false System.out.println(c); } } //OUTPUT: false
1. Logical Unary NOT (!) Operator
Logical Unary NOT operator requires just One Operand. It simply turns true to false and false to true. Its symbol is an Exclamation.
Expression | Result |
---|---|
false | true |
true | false |
Java Boolean Logical Operators
Example Usage:
boolean show = true; show = !show; if(!show) { System.out.println("SHOW = false"); }
2. Logical AND (&) Operator
Logical AND operator gives an output of true only if both operands are true. Logical AND operator checks the value of both operands or expressions before giving output. Even if the first expression is false, it goes for evaluating the second expression. This is a time waste thing and a drawback. Its symbol is an Ampersand.
expression1 | expression2 | Result |
---|---|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
Example Usage:
int k=5, p=9; c = (k<4)&(p>5); //p>5 is evaluated. Time waste. if(c) { System.out.println("Logical AND"); }
3. Logical Short Circuit AND (&&) Operator
Logical Short Circuit AND gives an output of true only if both Operands or Expressions are true. If the first expression is false, Short Circuit AND (&&) avoids evaluating the second expression. So it is faster than normal Logical AND (&) operator. Its symbol is Two Ampersands (&&).
expression1 | expression2 | Result |
---|---|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
Example Usage:
int k=5, p=9; c = (k<4)&&(p>5); //p>5 is not evaluated. if(!c) { System.out.println("Short Circuit Logical AND"); }
4. Logical OR (|) Operator
The logical OR (|) operator gives an output of true if one of the operands is true. So a combination of true and false always gives true as the output. Logical OR evaluates the second expression or operand even if the first expression is true. So it is slow compared to Short Circuit Logical Operator (||). Its symbol is a PIPE.
expression1 | expression2 | Result |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
Example Usage:
int k=5, p=9; c = (k>3)|(p>5); //p>5 is evaluated. Time waste. if(c) { System.out.println("Logical OR"); }
5. Logical Short Circuit OR (||) Operator
The Logical Short Circuit OR (||) operator gives an output of true if one of the expressions or operands is true. It gives an output of true if the first expression is true without evaluating the second expression. So it is fast. Only if the first expression is false, the second expression is evaluated or executed by Short Circuit OR operator.
expression1 | expression2 | Result |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
Its symbol is Two Pipes (||).
Example Usage:
int k=5, p=9; c = (k>3)||(p>5); //p>5 is not evaluated. if(c) { System.out.println("Short Circuit Logical OR"); }
6. Logical Exclusive OR (^) Operator
The Logical Exclusive OR (^) operator gives an output of true if both operands are different. It gives an output of false if both the operands or expressions are the same. Its symbol is a CARAT.
expression1 | expression2 | Result |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | false |
Example Usage:
int k=5, p=9; c = (k>3)^(p>9); if(c) { System.out.println("Logical XOR"); }
Java Compound Logical Assignment Operators
There are only three Compound Logical Assignment operators in Java, AND, OR and Exclusive OR. Simply put an Equal To (=) symbol after the Logical AND, OR or XOR operators to turn it into a Compound Assignment operator.
Note: The compound assignment is not possible with Short Circuit AND (&&), Short Circuit OR (||) and Unary NOT(!) operators.
1. Compound Assignment AND (&=) Operator
Here “expression” should be boolean variable or constant. “var” is a variable.
Syntax:
var &= expression var = var & expression eg. a &= false a = a & false
2. Compound Assignment OR(|=) Operator
Here “expression” should be boolean variable or constant. “var” is a variable.
Syntax:
var |= expression var = var | expression eg. a |= true a = a | true
3. Compound Assignment Exclusive OR (^=) Operator
Here “expression” should be boolean variable or constant. “var” is a variable.
Syntax:
var ^= expression var = var ^ expression eg. a ^= true a = a ^ true
Example: Logical Compound Assignment Operators
class CompoundAssignmentOperators { public static void main(String args[]) { boolean a = true; boolean b= false; boolean c = true; boolean d = false; a &= false; //a = a & false = false b |= true; //b = b | true = true c ^= false; //c = c^false = true d &&= false; //Error. Not an Operator d ||= false; //Error } }
[WpProQuiz 69]
Boolean Operators in java MCQ
1) What happens to the Second operand/expression if the first operand is FALSE with a Short Circuit AND (&&) operator?
A) Second operand/expression is evaluated and AND is applied.
B) Evaluation of Second operand/expression is skipped.
C) The compiler starts taking more memory
D) The compiler starts taking more CPU power.
Answer [=] B
Explanation:
Whether it is normal AND operator or Short Circuit AND operator, both operands should be TRUE to give output as true. If the first operand itself is false, there is no point in evaluating the second expression.
2) What happens to the Second Operand/expression if the first operand is TRUE with a Short Circuit OR (||) operator in Java?
A) Second expression/operand is evaluated and OR is applied to both operands
B) Evaluating the Second expression/operand is skipped
C) The compiler starts taking more memory
D) The compiler starts taking more CPU power
Answer [=] B
Explanation:
Both OR (|) and Short Circuit OR (||) operators give an output of true if at least one operand is true. Already the first operand is true. There is no need to evaluate or execute the second expression/operand.
3) What is the output of an Exclusive OR (^) operation if one of the operands/expressions is TRUE?
A) false
B) true
C) true or false
D) None of the above
Answer [=] C
Explanation:
Exclusive OR (^) gives an output of true if both the operands are different. If both are the same (true / false), the output is false. So, with just one operand, you can not decide the output.
4) What is the output of an Exclusive OR(^) operation, if one of the operands is false?
A) false
B) true
C) true or false
D) None of the above
Answer [=] C
Explanation:
Exclusive OR (^) gives an output of true if both the operands are different. If both are the same (true / false), the output is false. So, with just one operand, you can not decide the output.
5) Which is the Logical operator in Java that has the highest priority among all other logical operators?
A) Short Circuit AND (&&)
B) AND (&)
C) NOT (!)
D) Exclusive OR (^)
Answer [=] C
6) Among the Logical operators, AND (&) and Short Circuit AND (&&), which has higher priority?
A) AND (&)
B) Short Circuit AND (&&)
C) Both have same priority
D) None of the above
Answer [=] A
7) Among the logical operators, OR (|) and Short Circuit OR (||), which operator has higher priority?
A) OR (|)
B) Short Circuit OR (||)
C) Both have the same priority
D) None of the above
Answer [=] A
8) Among the logical operators, OR (|), Short Circuit OR (||) and Exclusive OR (^), which operator has higher priority?
A) OR (|)
B) Short Circuit OR (||)
C) Exclusive OR (^)
D) All operators have the same priority.
Answer [=] C
Explanation:
! > & > ^ > | > && > || > Assignment
9) Choose the correct version of Logical Compound Assignment operators in Java below?
A) &=, |=, ^=
B) &&=, ||=, !=
C) A and B
D) None of the above
Answer [=] A
Explanation:
There no logical compound assignment operators like &&=, ||=, !=.
10) What is the output of the Java code snippet below?
byte a= 1; if(!a) { System.out.println("FISH"); } else { System.out.println("CRAB"); }
A) CRAB
B) FISH
C) Compiler error
D) None of the above
Answer [=] C
Explanation:
You can not convert from byte to boolean.
The operator ! is undefined for the argument type(s) byte
11) What is the output of the Java code snippet?
int a=25, b=30; boolean c = a>25 & b<40; if(c) { System.out.println("RABBIT"); } else { System.out.println("GOOSE"); }
A) RABBIT
B) GOOSE
C) Compiler error
D) None of the above
Answer [=] B
Explanation:
false & true is false only.
12) What is the output of the Java code snippet?
int a=25, b=30; boolean c = a>25 | b<40; if(c) { System.out.println("RABBIT"); } else { System.out.println("GOOSE"); }
A) RABBIT
B) GOOSE
C) Compiler error
D) None of the above
Answer [=] A
Explanation:
false | true is true only.
13) What is the output of the Java code snippet?
int a=3, b=8; boolean c = a>5 && ++b>6; System.out.println(b);
A) 8
B) 9
C) 6
D) Compiler error
Answer [=] A
Explanation:
++b>6 is not evaluated as the first operand itself is false. Short Circuit AND operator skips the second expression.
14) What is the output of the Java code snippet?
int a=5, b=9; boolean c = a>1 || b++<10; System.out.println(b);
A) 9
B) 10
C) 8
D) Compiler error
Answer [=] A
Explanation:
b++<10 is not evaluated by the Short Circuit OR operator as the first operand is already true. There is no need to check the second expression.
15) What is the output of the Java code snippet?
int a=4, b=6, c=8; boolean d = a>5 && b>5 & c++<10; System.out.println(c);
A) 8
B) 9
C) 10
D) Compiler error
Answer [=] B
Explanation:
Grouping or association of operands is done first based on the priority.
a>5 && (b>5 & c++<10) false && (anything) false
16) What is the output of the Java code snippet?
int a=4, b=8; boolean c = a>1 ^ b<10; if(c) { System.out.println("TREE"); } else { System.out.println("BIRD"); }
A) TREE
B) BIRD
C) Compiler error
D) None of the above
Answer [=] B
Explanation:
The exclusive operator (^) gives an output of TRUE only if both the operands are different.
17) What is the output of the Java code snippet?
int a=5; boolean b = a>1 || false; b ^= false; System.out.println(b);
A) false
B) true
C) Compiler error
D) None of the above
Answer [=] B
Explanation:
b ^= false; b = b^false; b = true ^ false; b = true;
18) What is the output of the Java code snippet?
int a=4, b=8; boolean c = a>2 ^ b<10 & false; System.out.println(c);
A) false
B) true
C) Compiler error
D) None of the above
Answer [=] B
Explanation:
AND has a higher priority than Exclusive OR.
a>2 ^ b<10 & false a>2 ^ (b<10 & false) a>2 ^ (true & false) a>2 ^ (false) true ^ false true
19) What is the output of the Java code snippet?
int a=3, b=1; int c = a & b; System.out.println("CAT " + c);
A) CAT true
B) CAT 1
C) Compiler error
D) None of the above
Answer [=] B
Explanation:
Here AND & operator is used with numbers. So, it is a Bitwise operator, not a Logical operator.
20) If an AND (&) operator is applied with two integers, what is this operator?
A) Boolean operator
B) Bitwise operator
C) Logical operator
D) Arithmetic operator
Answer [=] B