Selection Structures. Relational & Logical Operators In the previous unit we learned about...

Post on 30-Dec-2015

222 views 0 download

Transcript of Selection Structures. Relational & Logical Operators In the previous unit we learned about...

Computer ScienceSelection Structures

Relational & Logical Operators

In the previous unit we learned about arithmetic operators. They allowed us to generate new values in a program

In this unit you will be introduced to relational and logical operators

Relational operators enable you to compare values and from that comparison make decisions

Logical operators also known as Boolean operators decide whether an expression is true or false and enable you to combine conditions

Relational OperatorsRelational operators are also called comparative

operators because they compare thingsThey symbols used in programming for these operators

are:= = equal to (comparison)!= not equal to< less than> greater than<= less than or equal to>= greater than or equal to

Comparing NumbersIf you have two numbers:

Let A=10 and B=5 Then:

A > B is trueA < B is falseA >= B is trueA <= B is falseA != B is trueA == B is false

Comparison vs AssignmentComparison Assignment

= = =What is the difference?

The Assignment Operator (=) Changes the value of the variable on the right side to the left side

Example: Given A=3 and B=5 then for A=B, A becomes 5

The Comparison Operator (= =) Compares the right side to the left sides and asks if they are equal or if

its true Example: Example: A=3 and B=5 then for A==B, then the equation

is FALSE

Logical Operators

Logical operators are used to connect simple conditions into a more complex condition called a compound conditions.

The logical operators are:

AND OR NOT

The AND Operator

Joins two conditionsBoth conditions must be true for the statement to be

true. It is false if even one of the conditions is false. Example: The statement:

If (X > 5) AND (X < 10) Then …is true only if X is 6, 7, 8, or 9.

The OR Operator

Joins two conditionsOne condition must be true for the statement to be

true. It is false only if both conditions are false. Example: The statement:

If (X > 5) OR (X < 10) Then …is true for all numbers

The NOT OperatorAND and OR affect 2 simple conditions.NOT negates the condition. It makes the condition the

opposite of what is given. A condition with the NOT operator is true only if the

condition is false.Example: The statement:

NOT ( A < B) is true only if B is greater than or equal to A.

Example: The statementIf ( X > 100) AND NOT ( X == Y) Then…

is true only if X is greater than 100 but not equal to the value of Y.

Combining Operators

Example:Let A = 3 and let B = 5Is the following expression true or false?

NOT A > 3 OR B < 3 AND A – B <= 0

1. (NOT(false)) OR ((false) AND (true))2. (true) OR (false)3. true

Truth Tables

X Y X OR Y X AND Y NOT X

true true true true false

true false true false false

false true true false true

false false false false true

Hierarchy of OperationsType Operator Order Performed

Arithmetic operations are performed first, in order shown

( )^

* / % + -

1st parentheses2nd exponentiation3rd: multiplication, division, modulus4th: addition, subtraction

Relational operations are performed second

== != < <= > >=

All relational operators have equal precedence

Logical operations are performed last, in the order shown

NOT AND (&&)OR (||)

1st: NOT2nd: AND 3rd: OR

A note on ASCII codeRecall all data, including characters are stored in the

computer’s memory in binary form.A programming language uses a method or scheme to

associate each character with a number so that it can be converted into binary

One such scheme is called ASCII code American Standard Code for Information Interchange

-- pronounced “askey.”

In ASCII each character is associated with a number from 0 to 127

For a complete list see text: Prelude to Programming (Venit) on page 131

Why mention ASCII?These schemes affect how operators handle strings in a

programming languageIf you look at the ASCII table you will notice the

following is true:“a” > “A” “1” <= “5”“2” >= “2”

The program compares ASCII numbers, not the characters you write

Character ASCII #

a 97

A 65

1 49

2 50

5 53

Making ChoicesFrom the flow chart activity we saw how we can create

algorithms that make choicesThe way a program can handle these choices are known

as Selection Structures or If-Else statementsIf a condition is true then a statement is executed, else it

is not.Therefore the program selects to do one thing or the

other.

Types of Selection StructuresSingle-alternative (If-Then)

A single block of statements to be executed or skippedDual-alternative (If-Then-Else)

Two blocks of statements, one of which is to be executed, while the other one is to be skipped

Multiple-alternative (If-Then-Else-If or Case) More than two blocks of statements, only one of which is to be

executed and the rest skipped

Single Alternative – Simple IfThe single alternative is the most basic structure. It uses

one if statement If condition is true Then statement is executed otherwise

the statement is skippedPseudocode ExampleIf Age >= 18Set Eligibility = “Yes”Do other things…

End If

Condition

Statement

T

F

Dual Alternative – two branchThe dual alternative uses two statements

If conditions is true then the first statement is executed else the second statement is executed

Pseudocode ExampleIf Age >= 18Set Eligibility = “Yes”ElseSet Eligibility = “No”End If

Condition

Statement1

T F

Statement2

Example in Javaclass IfDemo{ public static void main (String[] args) { System.out.println("Please give one integer"); int first = In.getInt(); System.out.println("and a second"); int second = In.getInt(); if (first == second) System.out.println("The values are equal"); else System.out.println("The values are not equal"); }}

Multi Alternative – Multi branchThe multi alternative uses more than two statements

If condition is true then the first statement is executed else the second statement is executed else the third statement is executed and so on..

Pseudocode Example if (score >= 90) grade = ‘A’; else if (score >= 80) grade = ‘B’; else if (score >= 70) grade = ‘C’; ... else if (score >= 60) grade = ‘D’; else grade = ‘F’;

Flowchart for a Multiple Alternative

Nested IF statementsA nested statement is a statement within another

statementYou can nest if statements to determine if both of two

Boolean expressions are true, or if either of the expressions is true.

Cond1

Stmt1

T F

Stmt2

Cond2T F

StmtN

CondNT F

StmtN+1

. . .

Multiple Alternative – Switch/CaseThe switch statement is similar to an if /else, if /else

statement. It compares that value to two or more other values to

determine which code to execute. Pseudocode ExampleSwitch Choice

Case 1:Set Operation = “Add”

Case 2:Set Operation = “Subtract”

Case 3:Set Operation = “Multiply”

End Case

Example in Javaclass AvgTest{ public static void main(String[] args) {System.out.println("Please enter the test number.");int testNum = In.getInt();System.out.println("Please enter the score.");int score = In.getInt();switch (testNum){ case 1: System.out.println(score * 0.3); break; case 2:System.out.println(score * 0.1); break; case 3:System.out.println(score * 0.2); break;}System.out.print("is the weighted score of test " + testNum + " with a grade of " + score); }}