Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 7 Decision Making. Class 7: Decision Making Use the Boolean data type in decision-making statements Use If statements and Select Case statements."— Presentation transcript:

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


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

Similar presentations


Ads by Google