# Conditionals in Java

### Boolean expressions

A boolean expression is an expression that evaluates either true or false. A boolean expression may use

• equality operators (==, !=),
• relational operators (>, >=, <, <=) or
• logical operators (!, &&, ||).

Equality and relational operators compare two values (operands), and return boolean (true/false) results. The operands could be of types such as int, double, etc., as long as the operator is defined on such types.

int a = 3, b = 4;
boolean c;
c = (a == b);
c = (a != b);


Logical operators take boolean operands and produce boolean results, as shown in the truth table below. NOT operator (!) takes one operand, while AND (&&) and OR (||) take two operands. NOT has higher precedence than AND and OR.

 a b !a a && b a || b false false true false false false true true false true true false false false true true true false true true
boolean a = false, b = false;
int c = 3, d = 4;
boolean e;
e = !a && (c == d);
e = (c >= d) || a || b;


The following are some general rules of the operator precedence.

• Arithmetic operators have higher precedence than relational operators.
• Relational operators have higher precedence than logical operators.
• Parentheses can force the order of precedence.

### If-else statements

An if-statement starts with “if” and a boolean expression, followed by a block statement. Several statements can be grouped into a block statement which is enclosed in braces.

int a = 3, b = 4;
if (a <= b)
{
System.out.println(a + “ <= ” + b + “ evaluates to be ”);
System.out.println(a <= b);
}


Note that, indentation means nothing except to the human reader.

An if-else statement takes care of both cases when the condition is true or false.

int a = 3, b = 4, min;
if (a <= b)
min = a;
else
min = b;


In the following we define a class MinThree which takes three integers and output the minimum value.

import java.util.Scanner;
public class MinThree
{
int a, b, c, min;
Scanner scan = new Scanner(System.in);
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();

if (a < b && a < c)
min = a;
else if (b < c)
min = b;
else
min = c;
System.out.println("Minimum value " + min);
}


In this example, we use the java.util.Scanner class to get inputs from the user. The nextInt() method reads an integer from the input. Related document:
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

### Conditional Operator

A conditional operator uses a boolean condition to determine which of two expressions is evaluated. It has three parts (one condition and two expressions) which are connected with “? :”. For example,

int a = 3, b = 4, c = 5;
int min2 = (a < b) ? a : b;
int min3 = (a < b && a < c) ? a : ((b < c) ? b : c);


The statement

min2 = (a < b) ? a : b;


is equivalent to the following:

if (a < b)
min2 = a;
else
min2 = b;