4-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
TRANSCRIPT
4-1
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
Chapter 4Decisions and Conditions
Chapter 44
McGraw-Hill © 2006 The McGraw-Hill Companies, Inc. All rights reserved.
4-3
Objectives (1 of 2)
Use If statements to control the flow of logic.Understand and use nested If statements.Read and create action diagrams that illustrate the
logic in a selection process.Evaluate conditions using the comparison operators.Combine conditions using And, Or, AndAlso, and
OrElse.Test the Checked property of radio buttons and check
boxes.Perform validation on numeric fields.
4-4
Objectives (2 of 2)
Use a Case structure for multiple decisions.Use one event procedure to respond to the events for
multiple controls and determine which control caused the event.
Call an event procedure from another procedure.Create message boxes with multiple buttons and
choose alternate actions based on the user response.Debug projects using breakpoints, stepping program
execution, and displaying intermediate results.
4-5
If Statements
Used to make decisionsIf true, only the Then clause is executed, if false,
only Else clause, if present, is executedBlock If…Then…Else must always conclude with
End IfThen must be on same line as If or ElseIfEnd If and Else must appear alone on a lineNote: ElseIf is 1 word, End If is 2 words
4-6
If…Then…Else – General Form
If (condition) Thenstatement(s)
[ElseIf (condition) Thenstatement(s)]
[Elsestatement(s)]
End If
Logic with the Else
Logic without the Else
4-7
If…Then…Else - Example
With MeunitsDecimal = Decimal.Parse(unitsTextBox.Text)If unitsDecimal < 32D Then
.freshmanRadioButton.Checked = TrueElse
.freshmanRadioButton.Checked = FalseEnd If
End With
4-8
Charting If Statements
A Uniform Modeling Language (UML) activity diagram is a useful tool for showing the logic of an IF statement
Can be used to help programmers organize their thoughts and design projects more quickly
UML includes several types of diagramsActivity diagram-visual planning tool for
decisions/actions for either the entire application or single procedure
4-9
The Helpful Editor
When entering IF statements the editor automatically adds the Then and End If
The editor attempts to correct errors by supplying a colon if multiple statements are entered on a lineThe colon is a statement terminatorGood programming practices dictate that there should
be only statement per line—so remove the extra colon if found and correct the syntax
4-10
Test in an If statement is based on a conditionSix relational operators are used for comparisonNegative numbers are less than positive
numbersAn equal sign is used to test for equalityStrings can be compared, enclose strings in
quotesJOAN is less than JOHNHOPE is less than HOPELESS
Numbers are always less than letters300ZX is less than Porsche
Conditions
4-11
The Six Relational Operators
The test in an IF statement if based on a condition. To form conditions comparison operators are used.
> < = <> >= <=
4-12
Comparing Strings
Comparison begins with the left-most character and proceeds one character at a time left to right
If a character in one string is not equal to the corresponding character in the 2nd string the comparison terminates
The string with the lower-ranking character is judge less than the otherRanking is based on ANSI code, an established order
(collating sequence) for all letters, numbers, and special characters
4-13
Comparing Upper and Lowercase Characters
Use ToUpper and ToLower methods of the String class to return the uppercase or lowercase equivalent of a string, respectively
If nameTextBox.Text.ToUpper( ) = “BASIC" Then
' Do something.End If
When converting name TextBox.Text to uppercase it must be compared to an uppercase literal (“BASIC”) if it is to evaluate as True
4-14
Compound Condition
Logical operations compare Boolean expressions and return a Boolean result
Logical operators: Or, And, Not, AndAlso, OrElse, XorIf maleRadioButton.Checked And _ Integer.Parse(ageTextBox.Text) < 21 Then
minorMaleCountInteger += 1End If
If juniorRadioButton.Checked Or seniorRadioButton.Checked Then
upperClassmanInteger += 1End If
4-15
Combining Logical Operators
Compound conditions can combine multiple logical conditions
When both And and Or are evaluated And is evaluated before the Or
Use parenthesis to change the order of evaluation—inside the parenthesis is evaluated first
If saleDecimal > 1000.0 Or discountRadioButton.Checked _ And stateTextBox.Text.ToUpper( ) <> "CA" Then
' Code here to calculate the discount.End If
4-16
Short-Circuit Operations
VB.NET 2005 adds 2 new operators that provide short-circuit evaluation for compound conditions:AndAlso and OrElse
VB evaluates both expressions for True or False, then evaluates the And
The OrElse is designed to short circuit when the first condition evaluates True
AndAlso and OrElse are used for advanced programming when the 2nd expression should not be executed for some reason
4-17
If tempInteger > 32 ThenIf tempInteger > 80 Then
commentLabel.Text = "Hot"Else
commentLabel.Text = "Moderate"End If
ElsecommentLabel.Text = "Freezing"
End If
Nested If Statements
4-18
Using If Statements with Radio Buttons & Check Boxes
Instead of coding the CheckedChanged events, use If statements to see which are selected
Place the If statement in the Click event for a Button, such as an OK or Apply button; VS checks to see which options are selected
4-19
An Example of Using If Statements with Radio Buttons
With MeIf .redRadioButton.Checked Then .nameLabel.ForeColor = Color.RedElseIf .greenRadioButton.Checked
Then .nameLabel.ForeColor = Color.GreenElseIf .blueRadioButton.Checked Then .nameLabel.ForeColor = Color.BlueElse .nameLabel.ForeColor = Color.BlackEnd If
End With
4-20
Enhancing Message Boxes
For longer, more complex messages, store the message text in a String variable and use that variable as an argument of the Show method
VB will wrap longer messages to a second line
Include ControlChars to control the line length and position of the line break in multiple lines of output
Combine multiple NewLine constants to achieve double spacing and create multiple message lines
4-21
Message String Example
Dim formattedTotalString As StringDim formattedAvgString As StringDim messageString As String
formattedTotalString = totalSalesDecimal.ToString("N")formattedAvgString = averageSalesDecimal.ToString("N")messageString = "Total Sales: " & formattedTotalString _ & ControlChars.NewLine & "Average Sale: " & _ formattedAvgStringMessageBox.Show(messageString, "Sales Summary", _ MessageBoxButtons.OK)
4-22
Message Box - Multiple Lines of Output
ControlChars.NewLineUsed to force to next line
4-23
ControlChars Constants
ControlChar Constant Description
CfLf Carriage return/linefeed character combination
Cr Carriage return
Lf Line feed
NewLine New line character. Same effect as a carriage return/linefeed character combination
NullChar Character with a value of zero
Tab Tab character
Back Backspace character
FormFeed Formfeed character (not useful in Microsoft Windows)
VerticalTab Vertical tab character (not useful in Microsoft Windows
Quote Quotation mark character
4-24
Displaying Multiple Buttons
Use MessageBoxButtons constants to display more than one button in the Message Box
Message Box's Show method returns a DialogResult object that can be checked to see which button the user clicked
Declare a variable to hold an instance of the DialogResult type to capture the outcome of the Show method
4-25
Message Box - Multiple Buttons
MessageBoxButtons.YesNo
4-26
Declaring an Object Variable for the Method Return
Dim whichButtonDialogResult As DialogResult
whichButtonDialogResult = MessageBox.Show _
("Clear the current order figures?", "Clear Order", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question)If whichButtonDialogResult = DialogResult.Yes Then
' Code to clear the order.End If
4-27
Specifying a Default Button and Options
Use a different signature for the Message Box Show method to specify a default button
Add the MessageBoxDefaultButton argument after the MessageBoxIcons argument
Set message alignment with MessageBoxOptions argument
4-28
Input Validation
Check to see if valid values were entered by user before beginning calculations—called validation
Check for a range of values (reasonableness)If Integer.Parse(Me.hoursTextBox.Text) <= 10
Then
‘ Code to perform calculations….Check for a required field (not blank)
If nameTextBox.Text <> "" Then ...
4-29
Performing Multiple Validations
Use nested If statement to validate multiple values on a form
--OR--Use Case structure to validate multiple values
Simpler and clearer than nested IfNo limit to number of statements that follow a
Case statementWhen using a relational operator must use
the word IsUse the word To to indicate a range of
constants
4-30
The Select Case Statement - Examples
With MeSelect Case scoreInteger
Case Is >= 100.messageLabel1.Text = “Excellent
Score”Case 80 To 99
.messageLabel1.Text = “Very Good”Case 60 To 79
.messageLabel1.Text = “Satisfactory Score”
Case Else.messageLabel1.Text = “Poor”
End SelectEnd With
4-31
The Select Case Statement - Examples
Select Case listIndexIntegerCase 0
‘ Code to handle item 0
Case 1, 2, 3‘ Code for items 1, 2,
or 3Case Else
‘ Code for any other valueEnd Select
Select Case Me.teamTextBox.Text
Case “Tigers”‘ Code for Tigers
Case “Leopards”‘ Code for Leopards
Case Else‘ Code for any
nonmatchEnd Select
4-32
Sharing an Event Procedure
Add events to the Handles clause at the top of an event procedureAllows the procedure to respond to events of other
controlsGood professional technique is to set up a module-
level variable to hold the selection a user makesKey to using a shared event procedure is the sender
argumentCast (convert) sender to a specific object type using the
CType function
4-33
Calling Event Procedures
Reusable codeGeneral Form
[Call] ProcedureName ( )Keyword Call is optional and rarely used
ExamplesCall clearButton_Click (sender, e)--OR--clearButton_Click (sender, e)
4-34
Calling Event Procedures Example
A form with buttons that perform overlapping functions
The New Order button must do the same tasks as Clear for Next Item
4-35
Debugging Tools
Use Debug Menu and Debug options on VB Standard toolbar
Place Debug.WriteLine method in codeSet BreakPoints to stop at a particular location in
code and watch what happensStep Into, Step Over, Step OutEdit and ContinueLocals Window, and Autos Window
View the values of properties, variables, mathematical expressions, and conditions
4-36
Debug Menu and Toolbar
The debugging buttons on the VB standard toolbar
The debugging options on the Debug menu showing the keyboard shortcut keys
4-37
Writing to the Immediate Window
Debug.WriteLine(TextString)Debug.WriteLine(Object)
Debug.WriteLine("calculateButton procedure entered")Debug.WriteLine(quantityTextBox)
4-38
Breakpoints
Toggle Breakpoints On/Off by clicking in Editor's gray left margin indicator
4-39
Stepping through Code
Step IntoThe next line of code executes and the program pauses again
in debug timeIf the line of code is a call to another procedure, the first line of
code of the other procedure displaysStep Over
Similar to Step Into, except when your code has calls to other proceduresIt continues rapid execution of the called procedure and pauses at
the next line of the current (calling) procedure being analyzedStep Out
Used while stepping through a called procedureIt continues rapid execution until the called procedure
completes and pauses at the next line of the calling procedure
4-40
Edit and Continue
When attempting to continue execution after making changes in Debugging mode this dialog box appears if the edits are too major—Click Restart to recompile and run again
4-41
Locals Window
Shows values of local variables that are within scope of current statement
4-42
Autos Window
Automatically adjusts to show variables and properties that appear in previous and next few lines