Download presentation
Presentation is loading. Please wait.
Published byOsborne Flowers Modified over 9 years ago
1
Chapter 7 Decision Making
2
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
3
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
4
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 variable Dim BrowseMode As Boolean = True Declare multiple Boolean variables Dim Test1, Test2 As Boolean
5
Boolean Assignment Statements The keywords True and False are used in Boolean assignment statements Example: Dim Valid As Boolean Valid = True Valid = False
6
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
7
Figure 7-1: Flowchart of a Decision- making Statement
8
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
9
Comparison Operators Equal to (=) Not equal to (<>) Less than (<) Greater than (>) Less than or equal to (<=) Greater than or equal to (>=)
10
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
11
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)
12
Figure 7-2: Evaluating a Condition
13
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
14
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
15
One-Way If Statement (Example) Dim CurrentValue As Boolean = True If CurrentValue = True Then ' Statements that execute when ' CurrentValue is True End If ' statements
16
Figure 7-3: One-Way If Statement
17
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
18
Comparison Operations with Numeric Data Types Comparison operations can be performed on numeric data Example: Dim Value1 As Integer = 90 If Value1 < 100 Then ' Statements execute when ' Value1 is less than 100 End If ' statements
19
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
20
Table 7-1: String Equality Using Text and Binary Comparison
21
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
22
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
23
Two-way If Statements (Example) If Grade is greater than 75, set Pass to True. Otherwise, set Pass to False Dim Pass As Boolean Dim Grade As Integer = 80 If Grade > 75 Then Pass = True Else Pass = False End If ' statements
24
Figure 7-4: Two-way If Statement
25
Introduction to Multiway If Statements Multiway If statements have three or more possible outcomes
26
Multiway If Statements (Syntax) If condition1 Then [statements] [ElseIf condition2 Then [elseifStatements]] [Else] [elseStatements]] End If statements
27
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
28
Figure 7-5: Multiway If Statement
29
Multiway If Statement (Example) Dim NumericGrade As Integer = 84 Dim LetterGrade As String If 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
30
Notes About If Statements If statements can be written in different ways –Chose the If statement that is most readable –This decision can be subjective The Code Editor automatically indents blocks in an If statement The Code Editor automatically inserts the End If If statements can be nested –One If statement can contain another If statement
31
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
32
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
33
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
34
Select Case Statement (Example) Dim Quarter As Integer = 1 Dim QuarterString As String Select 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
35
Figure 7-7: Select Case Statement
36
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
37
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
38
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
39
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
40
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
41
The Not Operator The Not operator is a unary operator Examples: –Result = Not (True) ' False –Result = Not (False) ' True –Result = Not (4 > 3) ' False
42
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 = True Else Valid = False End If ' statements
43
Introduction to the MessageBox Class The MessageBox is a standard dialog box that displays –A message –A caption –An icon –One or more standard button groups
44
The MessageBox Show Method (Syntax) Public Shared Function Show(ByVal text As String, ByVal caption As String, ByVal buttons As MessageBoxButtons, ByVal icon As MessageBoxIcon) As DialogResult –text contains the message –caption appears in the title bar –buttons defines the button(s) –icon defines the icon
45
The MessageBox.Show Method (Example) Display a message box with Yes and No buttons Dim Result As DialogResult Result = MessageBox.Show( _ "Do you want to quit?", "Exit", _ MessageBoxButtons.YesNo, _ MessageBoxIcon.Question) If Result = DialogResult.Yes Then Me.Close() End If
46
Figure 7-9: Message Box
47
Table 7-3: Message Box Enumerations
48
The InputBox (Introduction) The InputBox gets a text string from the end user It's a standard dialog box It is possible to supply a default textual value
49
The InputBox (Syntax) Shared Function InputBox(ByVal prompt As String, Optional ByVal title As String, Optional ByVal defaultResponse As String, Optional ByVal xPos As Integer, Optional ByVal yPos As Integer) As String –prompt contains a descriptive prompt –title appears on the title bar –defaultResponse contains the default value –xPos and YPos contain the coordinate values where the input box will appear
50
The InputBox (Example) Display an input box and store the returned string in ResultString Dim ResultString As String ResultString = _ Microsoft.VisualBasic.InputBox( _ "Enter a value", "Title", _ "Default Value", 0, 0)
51
Figure 7-10: Input Box
52
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
53
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
54
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
55
Figure 7-12: Focus and Validating Event Sequence
56
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
57
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
58
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
59
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
60
Structured Exception Handler (Example) Handle all exceptions and display a message box, if necessary Dim Value1 As Short = 100 Dim Value2 As Short = 0 Dim Result As Short Try Result = Value1 / Value2 Catch ex As System.Exception MessageBox.Show(ex.Message, "Error") End Try
61
Figure 7-15: Execution Flow of a Structured Exception Handler
62
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
63
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
64
Figure 7-16: Exception Hierarchy
65
Throwing an Exception The Throw statement throws (creates) an exception Example: Throw New System.ArgumentException
66
Controls that Rely on Decision-Making Three controls are commonly used with decision-making –The CheckBox control allows the end user to select one of two possible values –The HScrollBar control and VScrollBar controls allow the user to select a value from a range of values
67
The CheckBox Control The CheckBox control allows the end user to select from two possible values The CheckAlign property defines where the check box appears The Boolean Checked property indicates whether the box is checked The Text property contains the visible text The TextAlign property controls the alignment of the text The CheckedChanged event fires when the value of the Checked property changes
68
The CheckBox Control (Example) Determine whether the CheckBox named chkDemo is checked If chkDemo.Checked = True Then txtState.Text = "Checked" Else txtState.Text = "Not checked" End If
69
The HScrollBar and VScrollBar Controls (Introduction) Use to select a value from a range of values The two scroll bars work the same way –The HScrollBar has a horizontal orientation –The VScrollBar has a vertical orientation
70
The HScrollBar and VScrollBar Controls (Syntax) The Minimum and Maximum properties define the range of values The current value is stored in the Value property The SmallChange and LargeChange properties define the magnitude of change The Scroll event fires while scrolling The ValueChanged event fires when scrolling is complete and the value changes
71
Figure 7-19: Changing the Value Property of a Vertical Scroll Bar
72
Figure 7-20: The Maximum and Minimum Properties of a Vertical Scroll Bar
73
Scroll Event (Example) Display scroll bar values Private Sub vsbDemo_Scroll( _ ByVal sender As System.Object, _ ByVal e As _ System.Windows.Forms.ScrollEventArgs) _ Handles vsbDemo.Scroll txtValue.Text = vsbDemo.Value.ToString txtOldValue.Text = e.OldValue.ToString txtNewValue.Text = e.NewValue.ToString End Sub
74
Control Groups Container controls are used to group control instances together –The GroupBox control is a container control –Visual Studio supports several other container controls
75
The GroupBox Control (Syntax) The BackColor and ForeColor properties define the color Visual text appears in the Text property
76
The RadioButton Control The end user selects one button from a group of buttons Members –The Text property contains the visible text –The Checked property defines whether the RadioButton is selected –The CheckedChanged event fires when the button is clicked
77
Multicast Event Handlers (Introduction) One event handler handles the same event for many control instances The Handles clause contains a comma- separated list of control instances and event names –A period separates the control instance and event name
78
Multicast Event Handlers (Example) Handle the CheckChanged event for three radio buttons Private Sub radChoices_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles radFirstChoice.CheckedChanged, _ radSecondChoice.CheckedChanged, _ radThirdChoice.CheckedChanged Dim CurrentRadioButton As RadioButton CurrentRadioButton = CType(sender, RadioButton) Select Case CurrentRadioButton.Name Case "radFirstChoice" Case "radSecondChoice" Case "radThirdChoice" End Select End Sub
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.