Professional Documents
Culture Documents
Lec 4 Boolean, Logical Expressions, Conditional Execution
Lec 4 Boolean, Logical Expressions, Conditional Execution
Computer Programming
short The short integer type, with range -32768 . . . 32767 2 bytes
boolean The type with the two truth values false and true 1 byte
The boolean data type
Useful to control flow and logic in programs (see later).
Boolean
Operators
Relational Operators
Java Operator Precedence
Boolean Operators
Not !
And &&
Or ||
Example
Example Result
(2 == 3) && (-1 < 5) false
(2 == 3) || (-1 < 5) true
!(2 == 3) true
Evaluating logic expressions
• Relational operators have lower precedence than math.
5 * 7 >= 3 + 5 * (7 - 1)
5 * 7 >= 3 + 5 * 6
35 >= 3 + 30
35 >= 33
true
System.out.println(b2);
int x = 3;
int y = 4;
b1 = (x == y) || (x <= y);
b2 = x > y;
• if statement
• if-else statement
• switch statement
The if statement
Executes a block of statements only if a test is true
if (test) { Logical
statement; Expression
Controlled Flow
...
Statements Chart
statement;
}
• Example:
double gpa = console.nextDouble();
if (gpa >= 2.0) {
System.out.println("Application accepted.");
}
The if/else statement
Executes one block if a test is true, another if false
if if (test) {
controlled statement(s);
statements} else { else
(body of if) statement(s); controlled
} statements
(body of else)
• Example:
double gpa = console.nextDouble();
if (gpa >= 2.0) {
System.out.println("Welcome to BAU!");
} else {
System.out.println("Application denied.");
}
Statement Types
• The body of if statement may consist of multiple statements that must be
executed in sequence whenever the condition is true.
• These statements must be grouped together to form a block statement by enclosing
them in braces { } if (amount <= balance)
{
double newBalance = balance - amount;
balance = newBalance;
}
‒ Block statement {
double newBalance = balance - amount;
balance = newBalance;
}
Misuse of if
• What's wrong with the following code?
Scanner console = new Scanner(System.in);
System.out.print("What percentage did you earn? ");
int percent = console.nextInt();
• Example:
if (x > 0) {
System.out.println("Positive");
} else if (x < 0) {
System.out.println("Negative");
} else {
System.out.println("Zero");
}
Nested if/else/if Mutually Exclusive
if (test) {
statement(s);
} else if (test) {
statement(s);
} else if (test) {
statement(s);
}
• Example:
if (place == 1) {
System.out.println("Gold medal!");
} else if (place == 2) {
System.out.println("Silver medal!");
} else if (place == 3) {
System.out.println("Bronze medal.");
}
Nested if structures
• exactly 1 path (mutually exclusive) • 0 or 1 path (mutually exclusive)
if (test) { if (test) {
statement(s); statement(s);
} else if (test) { } else if (test) {
statement(s); statement(s);
} else { } else if (test) {
statement(s); statement(s);
} }
– Whether you made the dean's list (GPA ≥ 3.8) or honor roll (3.5-3.8).
• (3) nested if / else if
quadrant 2 quadrant 1
x- x+
quadrant 3 quadrant 4
y-
Go to class
Take an umbrella
Example 2 - answer
import java.util.*; // so that I can use Scanner
public class MyDay {
public static void main(String[] args) {
– This code will compile, but it will not print the song.
• General syntax:
result = testCondition ? value1 : value2;
equivalent to:
if (testCondition)
result = value1;
else
result = value2;
• Example
int max = (a > b) ? a : b;