Decisions and Conditions · 4-3 Objectives (2 of 2) Use a Case structure for multiple decisions....

37
Chapter 4 Decisions and Conditions Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

Transcript of Decisions and Conditions · 4-3 Objectives (2 of 2) Use a Case structure for multiple decisions....

Page 1: Decisions and Conditions · 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

Chapter 4

Decisions and

Conditions

Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

Page 2: Decisions and Conditions · 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

4-2

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.

Page 3: Decisions and Conditions · 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

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.

Page 4: Decisions and Conditions · 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

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.

Page 5: Decisions and Conditions · 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

4-5

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

Page 6: Decisions and Conditions · 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

4-6

If…Then…Else — Example

unitsDecimal = Decimal.Parse(unitsTextBox.Text)

If unitsDecimal < 32D Then

freshmanRadioButton.Checked = True

Else

freshmanRadioButton.Checked = False

End IF

Page 7: Decisions and Conditions · 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

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

Page 8: Decisions and Conditions · 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

4-8

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

Page 9: Decisions and Conditions · 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

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 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.

Page 10: Decisions and Conditions · 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

4-10

The Six Relational Operators

The test in an IF statement if based on a condition. To

form conditions, comparison operators are used.

> < = <> >= <=

Page 11: Decisions and Conditions · 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

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

judged less than the other.

• Ranking is based on ANSI code, an established order

(collating sequence) for all letters, numbers, and

special characters.

Page 12: Decisions and Conditions · 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

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( )

BI 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.

Page 13: Decisions and Conditions · 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

4-13

Compound Condition

If maleRadioButton.hecked

nd _

Integer.Parse(ageTextBox.Text)

< 21 Then

minorMaleountInteger + 1

End If

If juniorRadioButton.hecked

Or seniorRadioButton.hecked

Then

upperlassmanInteger + 1

End If

Page 14: Decisions and Conditions · 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

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—

condition inside the parenthesis is evaluated first.

If saleDecimal > 1000.0D Or

discountRadioButton.hecke

d _

nd

stateTextBox.Text.ToUpper(

) <> Then

' ode here to

calculate the discount.

End If

Page 15: Decisions and Conditions · 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

4-15

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 2nd expression should not

be executed for some reason.

Page 16: Decisions and Conditions · 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

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

Page 17: Decisions and Conditions · 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

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 your code in the

Click event of Buttons,

such as an OK or Apply

button; VS checks to see

which options are

selected.

Page 18: Decisions and Conditions · 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

4-18

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.

Page 19: Decisions and Conditions · 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

4-19

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

ales: &

formattedTotaltring _

& Environment.NewLine &

verage ale: & _

formattedvgtring

MessageBox.how(messagetring

, ales ummary, _

MessageBoxButtons.OK)

Page 20: Decisions and Conditions · 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

4-20

Message Box — Multiple Lines of Output

ControlChars.NewLine Used to force to next line

Page 21: Decisions and Conditions · 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

4-21

ControlChars Constants

ControlChar Constant Description

CrLf 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

Page 22: Decisions and Conditions · 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

4-22

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.

Page 23: Decisions and Conditions · 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

4-23

Message Box - Multiple Buttons

MessageBoxButtons.YesNo

Page 24: Decisions and Conditions · 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

4-24

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

order.

End If

Page 25: Decisions and Conditions · 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

4-25

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.

Page 26: Decisions and Conditions · 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

4-26

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 ...

Page 27: Decisions and Conditions · 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

4-27

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.

Page 28: Decisions and Conditions · 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

4-28

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 to a specific object type using

the CType function.

Page 29: Decisions and Conditions · 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

4-29

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)

Page 30: Decisions and Conditions · 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

4-30

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.

Page 31: Decisions and Conditions · 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

4-31

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.

Page 32: Decisions and Conditions · 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

4-32

Debug Menu and Toolbar

The debugging

buttons on the

VB standard

toolbar

The

debugging

options on

the Debug

menu

showing the

keyboard

shortcut

keys

Page 33: Decisions and Conditions · 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

4-33

Writing to the Immediate Window

• Debug.WriteLine(TextString)

• Debug.WriteLine(Object)

Debug.WriteLine(calculateB

utton procedure entered)

Debug.WriteLine(quantityTex

tBox)

Page 34: Decisions and Conditions · 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

4-34

Breakpoints

Toggle Breakpoints On/Off by clicking in Editor's gray left margin indicator.

Page 35: Decisions and Conditions · 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

4-35

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.

Page 36: Decisions and Conditions · 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

4-36

The Locals Window

Shows values of local variables that are within scope of current statement

Page 37: Decisions and Conditions · 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

4-37

The Autos Window

Automatically adjusts to show variables and properties that appear in previous and next few lines