Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making...

53
Chapter 7 Decision Making

Transcript of Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making...

Page 1: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Chapter 7

Decision Making

Page 2: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Class 7: Decision Making

• Use the Boolean data type in decision-making statements

• Use If statements and Select Case statements to make decisions

• Use logical operators to create complex conditions• Use decision-making statements to perform input

validation• Create structured exception handlers so that run-

time errors will not cause an application to terminate

Page 3: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Boolean Data

• Boolean data operates similarly to an on/off switch– True signifies on– False signifies off

• Many properties store Boolean data– Visible and Enabled for example

Page 4: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Declaring a Boolean Variable

• Declare a Boolean variable– Uninitialized Boolean variables have a value

of False

Dim Valid As Boolean

• Declare and initialize a Boolean variableDim BrowseMode As Boolean = True

• Declare multiple Boolean variablesDim Test1, Test2 As Boolean

Page 5: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Boolean Assignment Statements

• The keywords True and False are used in Boolean assignment statements

• Example:Dim Valid As Boolean

Valid = True

Valid = False

Page 6: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Decision-making Statements

• Applications need the capability to execute one group of statements in certain circumstances and other statements in other circumstances

• These statements are called decision-making statements

• The If statement is used to make decisions

Page 7: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-1: Flowchart of a Decision-making Statement

Page 8: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

If Statements and Comparison Operators

• A conditional statement executes one group of statements when a condition is True and another group of statements when a condition is False

• Comparison operators are used in conditional statements

• Conditional operations always produce a Boolean result

Page 9: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Comparison Operators

• Equal to (=)

• Not equal to (<>)

• Less than (<)

• Greater than (>)

• Less than or equal to (<=)

• Greater than or equal to (>=)

Page 10: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Using Comparison Operators (Example)

• Example:

Dim Result As Boolean

Dim Value1 As Integer = 3, Value2 As Integer = 5

Result = Value1 < Value2 ' True

Result = Value1 + 2 = Value2 – 1 ' False

Page 11: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Using Comparison Operators (Example, continued)

• Parentheses can clarify the order of evaluation

• The following two statements are equivalent:Result = Value1 + 2 < Value2 – 1

Result = (Value1 + 2) < (Value2 – 1)

Page 12: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-2:Evaluating a Condition

Page 13: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Comparison Operators and If Statements

• Comparison operators are most commonly used with an If statement– A group of statements executes only when a

condition is True– This form of If statement is called a one-way If statement

– The statements that execute as a result of a condition are called a statement block

Page 14: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

One-Way If Statement (Syntax)

If condition Then

statements(A)

End If

Statement(B)

– condition must evaluate to a Boolean value– If the condition is True, statements(A) execute– If the condition is False, statements(A) do not execute

• Execution continues at the statement (B) following the End If

– Statements (A) make up a statement block

Page 15: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

One-Way If Statement (Example)

Dim CurrentValue As Boolean = True

If CurrentValue = True Then

' Statements that execute when

' CurrentValue is True

End If

' statements

Page 16: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-3:One-Way If Statement

Page 17: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Comparison Operations with Dates

• Comparison operations can be performed on dates– Dates in the past are less than dates in the future

• Example:

Dim StartDate As DateTime = #10/22/2007#

Dim EndDate As DateTime = #10/24/2007#

If StartDate < EndDate = True Then

EndDate = System.DateTime.Today

End If

Page 18: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Comparison Operations with Numeric Data Types

• Comparison operations can be performed on numeric data

• Example:Dim Value1 As Integer = 90If Value1 < 100 Then ' Statements execute when ' Value1 is less than 100End If' statements

Page 19: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Comparison Operations with Strings

• Comparison operations can be performed with strings

• Strings are compared character-by-character from left to right

• String comparisons are performed in two ways

– Case sensitive (binary comparison)• A < B < E < Z < a < b < e < z• Option Compare Binary

– Case insensitive (text comparison)• (A=a) < (B=b) < (E=e) < (Z=z)• Option Compare Text

Page 20: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Table 7-1: String Equality Using Text and Binary Comparison

Page 21: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Two-way If Statements

• One statement block executes when a condition is True and another statement block executes when the condition is False

• This form of If statement is commonly referred to as an If . . . Then . . . Else statement

Page 22: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Two-way If Statements (Syntax)

If condition Then

statements(True)

Else

statements(False)

End If

statements

– Statements(True) execute if the condition is True– Statements(False) execute if the condition is False

Page 23: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Two-way If Statements (Example)

• If Grade is greater than 75, set Pass to True. Otherwise, set Pass to False

Dim Pass As BooleanDim Grade As Integer = 80If Grade > 75 Then Pass = TrueElse Pass = FalseEnd If' statements

Page 24: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-4:Two-way If Statement

Page 25: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Multiway If Statements

• Multiway If statements have three or more possible outcomes

Page 26: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Multiway If Statements (Syntax)

If condition1 Then

[statements]

[ElseIf condition2 Then

[elseifStatements]]

[Else]

[elseStatements]]

End If

statements

Page 27: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Multiway If Statements (Dissection)

• condition1 is first tested– If True, then the first statement block executes

• Execution continues as the statement following the decision-making statement

– If False, condition2 is tested and then the remaining conditions are tested

• If no conditions are True, then the statements in the Else block execute– The Else block is optional

Page 28: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-5:Multiway

If Statement

Page 29: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Multiway If Statement (Example)

Dim NumericGrade As Integer = 84Dim LetterGrade As StringIf NumericGrade >= 90 Then LetterGrade = "A"ElseIf NumericGrade >= 80 Then LetterGrade = "B"ElseIf NumericGrade >= 70 Then LetterGrade = "C"ElseIf NumericGrade >= 60 Then LetterGrade = "D"Else LetterGrade = "F"End If' statements

Page 30: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Select Case Statements

• Select Case statements are similar to multiway If statements

• The same expression must be used in each condition

• Select Case statements are faster than comparable multiway If statements

• Select Case statements tend to be more readable than comparable multiway If statements

Page 31: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Select Case Statement (Syntax)

Select Case testExpression Case expressionList-1 statement-block1 [Case expressionList-2 statement-block2] [Case expressionList-n statement-blockn] [Case Else statements]End Select' statements

Page 32: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Select Case Statement (Dissection)

• testExpression is evaluated once• Each expressionList is then tested. If True, the

corresponding statement-block executes and the Select Case statement ends

• Each expressionList is tested in order– When an expressionList is found to be True, the

statement block executes and the Select Case statement ends

• If no expessionList is True, then the statements in the Case Else block execute

Page 33: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Select Case Statement (Example)

Dim Quarter As Integer = 1Dim QuarterString As StringSelect Case Quarter Case 1 QuarterString = "First" Case 2 QuarterString = "Second" Case 3 QuarterString = "Third" Case 4 QuarterString = "Fourth" Case Else QuarterString = "Error"End Select' statements

Page 34: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-7: Select Case Statement

Page 35: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Select Case Statement (Variations)

• The To clause is used to test a range of values– Case 90 to 100

• The Is clause is used with comparison operators– Case is > 90

• A list of values can be created with a comma separated list– Case 1, 3, 5

Page 36: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Logical Operators (Introduction)

• Logical operators are used in conjunction with comparison and arithmetic operators

• Logical operators perform the same task as a conjunction (and) or a disjunction (or) in English

• The logical operators are And, Or, Not, Xor

• See Table 7-2 for examples

Page 37: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Logical Operators (Precedence)

• Logical operators have an order of precedence– Arithmetic operators are evaluated first– Comparison operators are evaluated second– Logical operators are evaluated last, from left

to right in the following order:•Not, And, Or, Xor

Page 38: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Logical Operators (Example)

• Evaluation of an expression:

Dim Result As Boolean

Result = (3 + 4) > 6 And (4 + 1) < 6

Result = 7 > 6 And 5 < 6

Result = True And True

Result = True

Page 39: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Logical Operators (Example, continued)

• Evaluation of an expression using And and Xor

Dim Result As Boolean

Result = (7 > 6) And (5 > 3) Xor (3 > 2)

Result = True And True Xor True

Result = True Xor True

Result = False

Page 40: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

The Not Operator

• The Not operator is a unary operator

• Examples:– Result = Not (True) ' False– Result = Not (False) ' True– Result = Not (4 > 3) ' False

Page 41: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Using Logical Operators

• Logical operators are typically combined with comparison and arithmetic operators in decision-making statements

• Example:If Input >= CurrentMin And _ Input <= CurrentMax Then

Valid = TrueElse Valid = FalseEnd If' statements

Page 42: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Decision-making and Input Validation

• Input validation is used to check input to make sure it is valid or at least plausible

• Use the IsDate method to determine whether a string can be converted to a date

• Use the IsNumeric method to determine whether a string can be converted to a number

• These methods return True if the value can be converted and False otherwise

• The methods do not actually convert the value

Page 43: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Decision-making and Input Validation (continued)

• Use range checking to determine whether a value falls between a range of values– A person's age, for example

• The format of some data can be validated– Social Security numbers– Telephone numbers– Zip codes

Page 44: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Input Validation Events

• The Validating event fires just before a control instance loses focus– This event can be canceled– The Validated event does not fire in this

case

• If the Validating event is not canceled, the Validated event fires

Page 45: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-12: Focus and Validating Event Sequence

Page 46: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Validating Event (Example)

• Validate a text box and cancel the event if the contents are invalid

Private Sub txtDOB_Validating( _

ByVal sender As Object, _

ByVal e As _

System.ComponentModel.CancelEventArgs) _

Handles txtDOB.Validating

If Not (IsDate(txtDOB.Text)) Then

e.Cancel = True

End If

End Sub

Page 47: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Introduction to Structured Exception Handling

• Run-time errors will cause a program to terminate because of an exception being thrown

• Exceptions can be thrown for several reasons– Numeric overflow errors

– Type conversion errors

– Division by zero errors

• Create structured exception handlers to prevent a program from terminating

Page 48: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Structured Exception Handlers (Syntax)

Try ' Place executable statements that might throw ' an exception in this block.Catch ' This code runs if the statements in the Try ' block throw an exception.Finally ' This code always runs immediately before ' the Try block or Catch block exits.End Try

Page 49: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Structured Exception Handlers (Syntax Dissection)

• The Try statement marks the beginning of an exception handler– Place the statement(s) that may cause the

exception in the Try block

• The Catch statement contains the code that executes if an exception is thrown– Multiple Catch blocks are possible

• The statements in the optional Finally block always execute

Page 50: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Structured Exception Handler (Example)

• Handle all exceptions and display a message box, if necessary

Dim Value1 As Short = 100Dim Value2 As Short = 0Dim Result As ShortTry Result = Value1 / Value2Catch ex As System.Exception MessageBox.Show(ex.Message, "Error")End Try

Page 51: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Figure 7-15: Execution Flow of a Structured Exception Handler

Page 52: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

The System.Exception Class

• All exceptions are derived from the System.Exception class

• Properties– The Message property contains an informational

message– The Source property is a string containing the

name of the application causing the error– The StackTrace property returns a string

containing the error location

Page 53: Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements.

Types of Exceptions

• An ArithmeticException can be thrown because of type conversion errors

• A DivideByZeroException is thrown when trying to divide a number by zero

• An OverflowExcpetion is thrown in cases of numeric overflow

• Trying to reference an object that does not exist throws a NullReferenceException