Transcript Bradley
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
4-1
Chapter
4
Chapter 4
Decisions and Conditions
McGraw-Hill
© 2006 The McGraw-Hill Companies, Inc. All rights reserved.
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-3
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-4
If Statements
Used to make decisions
If true, only the Then clause is executed, if false,
only Else clause, if present, is executed
Block If…Then…Else must always conclude with
End If
Then must be on same line as If or ElseIf
End If and Else must appear alone on a line
Note: ElseIf is 1 word, End If is 2 words
4-5
If…Then…Else – General Form
If (condition) Then
statement(s)
[ElseIf (condition) Then
statement(s)]
[Else
statement(s)]
End If
Logic with the Else
Logic without the Else
4-6
If…Then…Else - Example
With Me
unitsDecimal = Decimal.Parse(unitsTextBox.Text)
If unitsDecimal < 32D Then
.freshmanRadioButton.Checked = True
Else
.freshmanRadioButton.Checked = False
End If
End With
4-7
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 diagrams
Activity diagram-visual planning tool for decisions/actions
for either the entire application or single procedure
4-8
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 line
The colon is a statement terminator
Good programming practices dictate that there should be
only statement per line—so remove the extra colon if
found and correct the syntax
4-9
Conditions
Test in an If statement is based on a condition
Six relational operators are used for comparison
Negative numbers are less than positive
numbers
An equal sign is used to test for equality
Strings can be compared, enclose strings in
quotes
JOAN is less than JOHN
HOPE is less than HOPELESS
Numbers are always less than letters
300ZX is less than Porsche
4-10
The Six Relational Operators
The test in an IF statement if based on a condition. To
form conditions comparison operators are used.
> < = <> >= <=
4-11
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 other
Ranking is based on ANSI code, an established order
(collating sequence) for all letters, numbers, and special
characters
4-12
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-13
Compound Condition
Logical operations compare Boolean expressions and
return a Boolean result
Logical operators: Or, And, Not, AndAlso, OrElse, Xor
If maleRadioButton.Checked And _
Integer.Parse(ageTextBox.Text) < 21 Then
minorMaleCountInteger += 1
End If
If juniorRadioButton.Checked Or seniorRadioButton.Checked
Then
upperClassmanInteger += 1
End If
4-14
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-15
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-16
Nested If Statements
If tempInteger > 32 Then
If tempInteger > 80 Then
commentLabel.Text = "Hot"
Else
commentLabel.Text = "Moderate"
End If
Else
commentLabel.Text = "Freezing"
End If
4-17
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-18
An Example of Using If Statements with
Radio Buttons
With Me
If .redRadioButton.Checked Then
.nameLabel.ForeColor = Color.Red
ElseIf .greenRadioButton.Checked Then
.nameLabel.ForeColor = Color.Green
ElseIf .blueRadioButton.Checked Then
.nameLabel.ForeColor = Color.Blue
Else
.nameLabel.ForeColor = Color.Black
End If
End With
4-19
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-20
Message String Example
Dim formattedTotalString As String
Dim formattedAvgString As String
Dim messageString As String
formattedTotalString = totalSalesDecimal.ToString("N")
formattedAvgString = averageSalesDecimal.ToString("N")
messageString = "Total Sales: " & formattedTotalString _
& ControlChars.NewLine & "Average Sale: " & _
formattedAvgString
MessageBox.Show(messageString, "Sales Summary", _
MessageBoxButtons.OK)
4-21
Message Box - Multiple Lines of Output
ControlChars.NewLine
Used to force to next line
4-22
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-23
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-24
Message Box - Multiple Buttons
MessageBoxButtons.YesNo
4-25
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-26
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-27
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-28
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 If
No limit to number of statements that follow a
Case statement
When using a relational operator must use the
word Is
Use the word To to indicate a range of
constants
4-29
The Select Case Statement - Examples
With Me
Select 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 Select
End With
4-30
The Select Case Statement - Examples
Select Case Me.teamTextBox.Text
Select Case listIndexInteger
Case “Tigers”
Case 0
‘ Code for Tigers
‘ Code to handle item 0
Case “Leopards”
Case 1, 2, 3
‘ Code for Leopards
‘ Code for items 1, 2, or 3
Case Else
Case Else
‘ Code for any nonmatch
‘ Code for any other value
End Select
End Select
4-31
Sharing an Event Procedure
Add events to the Handles clause at the top of an
event procedure
Allows the procedure to respond to events of other
controls
Good professional technique is to set up a modulelevel variable to hold the selection a user makes
Key to using a shared event procedure is the sender
argument
Cast (convert) sender to a specific object type using the
CType function
4-32
Calling Event Procedures
Reusable code
General Form
[Call] ProcedureName ( )
Keyword Call is optional and rarely used
Examples
Call clearButton_Click (sender, e)
--OR- clearButton_Click (sender, e)
4-33
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-34
Debugging Tools
Use Debug Menu and Debug options on VB Standard
toolbar
Place Debug.WriteLine method in code
Set BreakPoints to stop at a particular location in code
and watch what happens
Step Into, Step Over, Step Out
Edit and Continue
Locals Window, and Autos Window
View the values of properties, variables, mathematical
expressions, and conditions
4-35
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-36
Writing to the Immediate Window
Debug.WriteLine(TextString)
Debug.WriteLine(Object)
Debug.WriteLine("calculateButton procedure entered")
Debug.WriteLine(quantityTextBox)
4-37
Breakpoints
Toggle Breakpoints On/Off by clicking
in Editor's gray left margin indicator
4-38
Stepping through Code
Step Into
The next line of code executes and the program pauses again
in debug time
If the line of code is a call to another procedure, the first line of
code of the other procedure displays
Step Over
Similar to Step Into, except when your code has calls to other
procedures
It continues rapid execution of the called procedure and pauses at
the next line of the current (calling) procedure being analyzed
Step Out
Used while stepping through a called procedure
It continues rapid execution until the called procedure
completes and pauses at the next line of the calling procedure
4-39
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-40
Locals Window
Shows values of local variables that are
within scope of current statement
4-41
Autos Window
Automatically adjusts to show variables
and properties that appear in previous
and next few lines
4-42