1 Relational Expressions Relational expressions: –Expressions that compare operands –Sometimes called conditions –Evaluated to yield a result –Typically used as part of a selection statement A simple relational expression consists of a relational operator connecting two variable and/or constant operands
2
3
4 Logical Operators Complex conditions can be created using Boolean logical operations: –AND –OR –NOT AND operator –&& –True only if both individual expressions are true by themselves
5 Logical Operators (continued) OR operator –|| –True if either one or both of two expressions are true NOT operator –! –Changes expression to opposite state Relational operators have higher precedence than logical operators
6 Logical Operators (continued) && and || operators: –Can only be used with Boolean operands –Second operand not evaluated if evaluation of first is sufficient to determine final value of logical operation
7
8 A Numerical Accuracy Problem Tests for equality of numbers using relational operator == should be avoided –Applies to: Floating-point Double-precision Many decimal numbers cannot be represented exactly in binary using a finite number of bits Require that absolute value of difference between operands be less than an extremely small value
9 The if-else Statement Directs computer to select a sequence of instructions based on the result of a comparison Condition is evaluated first –If the value of condition is true statement1 is executed –If the value is false the statement after reserved word else is executed
10 The if-else Statement (continued) if (condition) < no semicolon here statement1; else < no semicolon here statement2;
11
12 Compound Statements Any number of single statements contained between braces Takes place of single statement Semicolon is not placed after braces that define compound statement
13
14 The Boolean Data Type Tested condition in if-else statement must always evaluate to a Boolean value Value of condition must be either true or false The boolean data type is restricted in its usage as the value of a relational expression Boolean values can be: –Displayed –Compared –Assigned
15 One-Way Selection No else expression Syntax: if (condition) statement; The statement following if (condition) is only executed if condition has a true value
16 Placement of Braces in a Compound Statement Common practice for some programmers: –Place opening brace of compound statement on same line as if and else statements if (condition) { statement1; } else { statement2; }
17 Nested if Statements One or more if-else statements can be included within either part of if-else statement Last else is with closest unpaired if –Unless braces alter default pairing Process of nesting if statements can be extended indefinitely
18 The if-else Chain Else part of an if statement contains another if-else statement Syntax: if (expression1) statement1; else if (expression2) statement2; else statement3;
19 The if-else Chain (continued) Alternate syntax: if (expression1) statement1; else if (expression2) statement2; else statement3; Used extensively in programming applications
20 The switch Statement Provides alternative to if-else chain –For cases that compare the value of an integer expression to a specific value Reserved words: –Switch –Case –Default –Break
21 Switch Syntax switch (expression) { // start of compound statement case value-1: < terminated with a colon statement1; statement2; break; case value-2: < terminated with a colon statementm; statementn; break; default: < terminated with a colon statementaa; statementbb; } // end of switch and compound statement
22 The switch Statement (continued) Once entry point has been located: –All further case evaluations are ignored –Execution continues through end of compound statement –Unless break statement is encountered The break statement causes an immediate exit from the switch statement
23 Program Design and Development: Introduction to UML Explicit design –Should always be undertaken before coding begins –Referred to as program modeling Unified Modeling Language (UML) –Program modeling language with its own set of rules and notations –Not part of Java language
24 Program Design and Development: Introduction to UML (continued) Must understand and specify: –What the objects in the system are –What can happen to these objects –When it can happen Each item is addressed by a number of individual and separate views and diagrams
25 UML Diagram Types Class Object State Sequence Activity Use-case Component Deployment Collaboration
26
27 Class and Object Diagrams Class diagrams –Used to describe classes and their relationships Object diagrams –Describe specific objects and relationships Attribute –Characteristic that each object in class must have Attribute type –Primitive type –Class type
28 Class and Object Diagrams (continued) Visibility –Defines where the attribute can be seen –Whether the attribute can be used in other classes or is restricted to the class defining it Operations –Transformations that can be applied to attributes –Ultimately coded as Java methods
29
30
31 Relationships The three basic relationships include: –Association –Aggregation –Generalization
32
33
34
35 Application: A Date Class Need to develop a date class Extremely important in financial programs Design stages: –Identify type of objects –Decide how Date object is internally represented Identify attributes –Identify initial set of operations
36
37 User Interfaces, Definitions, and Information Hiding User interface consists of: –Class’s public member methods’ header lines –Supporting comments Definition consists of: –Class’s definition section –Class’s private data members Information hiding refers to the principle that how a class is internally constructed is not relevant to any programmer who wishes to use the class
38 Simplifying the Code Once a program is working, simplify the code: –Remove print statements –Use methods such as setDate() to initialize values in constructors
39 Adding Class Methods Leap Year Algorithm If the year is divisible by 4 with a remainder of 0 AND the year is divisible by 100 with a nonzero remainder OR the year is divisible by 400 with no remainder then the year is a leap year Else the year is not a leap year EndIf
40 Common Programming Errors Assuming the if-else statement is selecting an incorrect choice when the problem is really the values being tested Using nested if statements without including braces to clearly indicate the desired structure Mistakenly using the assignment operator = instead of the relational operator == when comparing Boolean data Forgetting to use a break statement to close off a case within a switch statement
41 Summary Relational expressions: –Referred to as conditions –Used to compare operands if-else statements: –Used to select between two alternative statements –Based on a value of a relational or logical expression –Can contain other if-else statements
42 Summary (continued) A compound statement consists of a number of individual statements enclosed within the brace pair { and } The switch statement is a multiway selection statement