Transcript If - (Walid) Ben Ali
McGraw-Hill
Chapter 4
Decisions and Conditions
Copyright © 2011 by 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-2
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-3
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-4
If…Then…Else — General Form
If (condition) Then statement(s) [ ElseIf (condition) Then statement(s)] [ Else statement(s)] End If Logic of an If /Then/ Else statement Logic of an If statement without the Else 4-5
If…Then…Else — Example
unitsDecimal = Decimal.Parse(unitsTextBox.Text) If unitsDecimal < 32D Then freshmanRadioButton.Checked = True Else freshmanRadioButton.Checked = False End IF 4-6
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-7
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-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 one statement per line — so remove the extra colon if found, and correct the syntax.
4-9
The Six Relational Operators
The test in an IF statement if based on a condition. To form conditions, comparison operators are used.
> < = <> >= <=
4-10
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 2 nd string, the comparison terminates.
The string with the lower-ranking character is judged less than the other.
• Ranking is based on ANSI code , an established order (collating sequence) for all letters, numbers, and special characters.
4-11
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( ) BI End If Then ' Do something.
When converting name TextBox.Text to uppercase, it must be compared to an uppercase literal (“BASIC”) if it is to evaluate as True.
4-12
Compound Condition
If nd maleRadioButton.hecked _ Integer.Parse(ageTextBox.Text) < 21 Then minorMaleountInteger + 1 End If If juniorRadioButton.hecked Or seniorRadioButton.hecked Then upperlassmanInteger + 1 End If 4-13
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 — condition inside the parenthesis is evaluated first.
If discountRadioButton.hecke d _ saleDecimal > 1000.0D nd stateTextBox.Text.ToUpper( ) <> Then ' ode here to calculate the discount.
Or 4-14
Short-Circuit Operations
• Visual Basic has 2 operators that provide
short circuit
evaluation for compound conditions: the 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 2 nd expression should not be executed for some reason.
4-15
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-16
• •
Using If Statements with Radio Buttons & Check Boxes
Instead of coding the CheckedChanged events, use If statements to see which are selected.
Place your code in the Click event of Buttons, such as an OK or Apply button; VS checks to see which options are selected.
4-17
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-18
Message String Example
Dim formattedTotaltring s tring Dim formattedvgtring s tring Dim messagetring s tring formattedTotaltring totalalesDecimal.Totring(N ) formattedvgtring averagealeDecimal.Totring( N) messagetring Total 4-19
Message Box — Multiple Lines of Output
ControlChars.NewLine
Used to force to next line 4-20
ControlChar Constant CrLf Cr Lf NewLine NullChar Tab Back FormFeed VerticalTab Quote
ControlChars Constants
Description Carriage return/linefeed character combination Carriage return Line feed New line character. Same effect as a carriage return/linefeed character combination Character with a value of zero Tab character Backspace character Formfeed character (not useful in Microsoft Windows) Vertical tab character (not useful in Microsoft Windows Quotation mark character
4-21
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-22
Message Box - Multiple Buttons
MessageBoxButtons.YesNo
4-23
Declaring an Object Variable for the Method Return
Dim whichButtonDialogResult s DialogResult whichButtonDialogResult MessageBox.how _ (lear the current order figures?, lear Order, _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) If whichButtonDialogResult DialogResult.Yes Then ' ode to clear the 4-24
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-25
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(HoursTextBox.Text) <= 10 Then ‘ Code to perform calculations….
• Check for a required field (not blank).
• If NameTextBox.Text <> "" Then ...
4-26
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 you must use the word
Is.
• Use the word
To
to indicate a range of constants.
4-27
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 module level variable to hold the selection a user makes.
Key to using a shared event procedure is the
sender
• argument.
Cast (convert)
sender
the CType function.
to a specific object type using 4-28
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-29
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-30
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-31
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-32
Writing to the Immediate Window
• • Debug.WriteLine( Debug.WriteLine(
TextString Object
) ) Debug.WriteLine(calculateB utton procedure entered) Debug.WriteLine(quantityTex tBox) 4-33
Breakpoints
Toggle Breakpoints On/Off by clicking in Editor's gray left margin indicator.
4-34
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. Note: Edit and Continue is not supported in a 64 bit Windows environment.
4-35
The Locals Window
Shows values of local variables that are within scope of current statement 4-36
The Autos Window
Automatically adjusts to show variables and properties that appear in previous and next few lines 4-37