Chapter 3 Boolean Expressions Section 3.2 Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.

Slides:



Advertisements
Similar presentations
Chapter 2 Flow of Control. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 2-2 Learning Objectives Boolean Expressions Building, Evaluating.
Advertisements

Chapter 3 Flow of Control Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
Strings Testing for equality with strings.
Chapter 3 Flow of Control Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
Slides prepared by Rose Williams, Binghamton University Chapter 3 Flow of Control if-else and switch statements.
Slides prepared by Rose Williams, Binghamton University Chapter 13 Interfaces and Inner Classes.
Slides prepared by Rose Williams, Binghamton University Chapter 5 Defining Classes II.
COMP 14 Introduction to Programming Miguel A. Otaduy May 18, 2004.
Chapter 3 Flow of Control Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
ECE122 L7: Conditional Statements February 20, 2007 ECE 122 Engineering Problem Solving with Java Lecture 7 Conditional Statements.
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.2 Expressions and Assignment Statement.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
1 Lecture 7:Control Structures I (Selection) Introduction to Computer Science Spring 2006.
Primitive Types Java supports two kinds of types of values – objects, and – values of primitive data types variables store – either references to objects.
Logical Operators and Conditional statements
JavaScript, Third Edition
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.3 The Class String.
The Data Element. 2 Data type: A description of the set of values and the basic set of operations that can be applied to values of the type. Strong typing:
The Data Element. 2 Data type: A description of the set of values and the basic set of operations that can be applied to values of the type. Strong typing:
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
Chapter 3 Flow of Control Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
© 2006 Pearson Education 1 Obj: to use compound Boolean statements HW: p.184 True/False #1 – 6 (skip 3)  Do Now: 1.Test your “Charge Account Statement”
Comp 248 Introduction to Programming Chapter 3 – Flow of Control Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University,
Slides prepared by Rose Williams, Binghamton University Chapter 3 Flow of Control.
Flow of Control Module 3. Objectives Use Java branching statements Compare values of primitive types Compare objects such as strings Use the primitive.
Chapter 3 Flow of Control Slides prepared by Rose Williams, Binghamton University Kenrick Mock University of Alaska Anchorage Copyright © 2008 Pearson.
Flow of Control (part 2) Joe McCarthy CSS 161: Fundamentals of Computing.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2009 Pearson Education, Inc., Upper.
Flow of Control Unless indicated otherwise, the order of statement execution through a method is linear: one after the other in the order they are written.
Flow of Control Chapter 3. Outline Branching Statements Java Loop Statements Programming with Loops The Type boolean.
ICT Introduction to Programming Chapter 4 – Control Structures I.
Sections © Copyright by Pearson Education, Inc. All Rights Reserved.
Java Programming Fifth Edition Chapter 5 Making Decisions.
Chapter 5: Making Decisions. Objectives Plan decision-making logic Make decisions with the if and if…else structures Use multiple statements in if and.
Programming in Java (COP 2250) Lecture 4 Chengyong Yang Fall, 2005.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Fluency with Information Technology Third Edition by Lawrence Snyder Chapter.
1 Program Development  The creation of software involves four basic activities: establishing the requirements creating a design implementing the code.
Slides prepared by Rose Williams, Binghamton University Chapter 3 Flow of Control.
Flow of Control Joe McCarthy CSS 161: Fundamentals of Computing1.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
ICS102 Lecture 8 : Boolean Expressions King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
 Type Called bool  Bool has only two possible values: True and False.
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Chapter 3 Flow of Control
Chapter 3 Flow of Control
Java Programming Fifth Edition
Boolean expressions and if-else statements
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
Chapter 3 Edited by JJ Shepherd
Chapter 3 Branching Statements
Chapter 3 Loops Section 3.3 Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.
Multiple variables can be created in one declaration
Logical Operators & Truth Tables.
Chapter 3: Program Statements
Chapter 8 JavaScript: Control Statements, Part 2
CMSC 202 Java Primer 2.
Chapter 3 Flow of Control
The Data Element.
The Data Element.
Chapter 4 Constructors Section 4.4
CSS161: Fundamentals of Computing
Boolean Expressions September 1, 2019 ICS102: The course.
Presentation transcript:

Chapter 3 Boolean Expressions Section 3.2 Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage

Boolean Expressions A Boolean expression is an expression that is either true or false The simplest Boolean expressions compare the value of two expressions time < limit yourScore == myScore – Note that Java uses two equal signs ( == ) to perform equality testing: A single equal sign ( = ) is used only for assignment – A Boolean expression does not need to be enclosed in parentheses, unless it is used in an if-else statement 3-2 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Java Comparison Operators 3-3 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Pitfall: Using == with Strings The equality comparison operator ( == ) can correctly test two values of a primitive type However, when applied to two objects such as objects of the String class, == tests to see if they are stored in the same memory location, not whether or not they have the same value In order to test two strings to see if they have equal values, use the method equals, or equalsIgnoreCase string1.equals(string2) string1.equalsIgnoreCase(string2) 3-4 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Lexicographic and Alphabetical Order Lexicographic ordering is the same as ASCII ordering, and includes letters, numbers, and other characters – All uppercase letters are in alphabetic order, and all lowercase letters are in alphabetic order, but all uppercase letters come before lowercase letters – If s1 and s2 are two variables of type String that have been given String values, then s1.compareTo(s2) returns a negative number if s1 comes before s2 in lexicographic ordering, returns zero if the two strings are equal, and returns a positive number if s2 comes before s1 When performing an alphabetic comparison of strings (rather than a lexicographic comparison) that consist of a mix of lowercase and uppercase letters, use the compareToIgnoreCase method instead 3-5 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Building Boolean Expressions When two Boolean expressions are combined using the "and" ( && ) operator, the entire expression is true provided both expressions are true – Otherwise the expression is false When two Boolean expressions are combined using the "or" ( || ) operator, the entire expression is true as long as one of the expressions is true – The expression is false only if both expressions are false Any Boolean expression can be negated using the ! operator – Place the expression in parentheses and place the ! operator in front of it Unlike mathematical notation, strings of inequalities must be joined by && – Use (min < result) && (result < max) rather than min < result < max 3-6 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Evaluating Boolean Expressions Even though Boolean expressions are used to control branch and loop statements, Boolean expressions can exist independently as well – A Boolean variable can be given the value of a Boolean expression by using an assignment statement A Boolean expression can be evaluated in the same way that an arithmetic expression is evaluated The only difference is that arithmetic expressions produce a number as a result, while Boolean expressions produce either true or false as their result boolean madeIt = (time < limit) && (limit < max); 3-7 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Truth Tables 3-8 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Short-Circuit and Complete Evaluation Java can take a shortcut when the evaluation of the first part of a Boolean expression produces a result that evaluation of the second part cannot change This is called short-circuit evaluation or lazy evaluation – For example, when evaluating two Boolean subexpressions joined by &&, if the first subexpression evaluates to false, then the entire expression will evaluate to false, no matter the value of the second subexpression – In like manner, when evaluating two Boolean subexpressions joined by ||, if the first subexpression evaluates to true, then the entire expression will evaluate to true 3-9 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Short-Circuit and Complete Evaluation There are times when using short-circuit evaluation can prevent a runtime error – In the following example, if the number of kids is equal to zero, then the second subexpression will not be evaluated, thus preventing a divide by zero error – Note that reversing the order of the subexpressions will not prevent this if ((kids !=0) && ((toys/kids) >=2))... Sometimes it is preferable to always evaluate both expressions, i.e., request complete evaluation – In this case, use the & and | operators instead of && and || 3-10 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Precedence and Associativity Rules Boolean and arithmetic expressions need not be fully parenthesized If some or all of the parentheses are omitted, Java will follow precedence and associativity rules (summarized in the following table) to determine the order of operations – If one operator occurs higher in the table than another, it has higher precedence, and is grouped with its operands before the operator of lower precedence – If two operators have the same precedence, then associativity rules determine which is grouped first 3-11 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

3-12 Copyright © 2012 Pearson Addison-Wesley. All rights reserved. Precedence and Associativity Rules

Tip for Evaluating Expressions In general, use parentheses in an expression to help to document the programmer's intent – Instead of relying on precedence and associativity rules, it is best to include most parentheses, except where the intended meaning is obvious 3-13 Copyright © 2012 Pearson Addison-Wesley. All rights reserved.