1 Chapter 5 Control Structures Part 2 Outline

  • Slides: 36
Download presentation
1 Chapter 5 – Control Structures: Part 2 Outline 5. 1 Introduction 5. 2

1 Chapter 5 – Control Structures: Part 2 Outline 5. 1 Introduction 5. 2 Essentials of Counter-Controlled Repetition 5. 3 For/Next Repetition Structure 5. 4 Examples Using the For/Next Structure 5. 5 Select Case Multiple-Selection Structure 5. 6 Do/Loop While Repetition Structure 5. 7 Do/Loop Until Repetition Structure 5. 8 Using the Exit Keyword in a Repetition Structure 5. 9 Logical Operators 2002 Prentice Hall. All rights reserved.

5. 2 Essentials of Counter-Controlled Repetition • Elements needed – Control variable • Used

5. 2 Essentials of Counter-Controlled Repetition • Elements needed – Control variable • Used to determine whether loop continues to iterate – Initial value of control variable – Increment (or decrement) • Describes how control variable is modified during each iteration – Condition • Tests for final value of control variable 2002 Prentice Hall. All rights reserved. 2

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ' Fig. 5. 1: While. Counter. vb ' Using the While structure to demonstrate counter-controlled ' repetition. Outline Control variable defined Whileand structure Module mod. While. Counter initialized to 2 used for repetition Sub Main() Condition tests if control variable is less than or equal to Dim counter As Integer = 2 ' initialization final value While (counter <= 10) ' repetition condition Console. Write(counter & " ") counter += 2 ' increment counter End While End Sub ' Main End Module ' mod. While. Counter Control variable incremented by 2 each iteration While. Counter. vb 2 4 6 8 10 2002 Prentice Hall. All rights reserved. 3

5. 3 For/Next Repetition Structure • For/Next counter-controlled repetition – Structure header initializes control

5. 3 For/Next Repetition Structure • For/Next counter-controlled repetition – Structure header initializes control variable, specifies final value and increment • For keyword begins structure – Followed by control variable initialization • To keyword specifies final value • Step keyword specifies increment – Optional – Increment defaults to 1 if omitted – May be positive or negative – Next keyword marks end of structure – Executes until control variable greater (or less) than final value 2002 Prentice Hall. All rights reserved. 4

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ' Fig. 5. 2: For. Counter. vb ' Using the For/Next structure to demonstrate counter-controlled ' repetition. Module mod. For. Counter Outline Control variable To specifies final initialized to. Step 2 increments counter value of 10 by 2 each iteration Sub Main() Dim counter As Integer ' initialization, repetition condition and ' incrementing are included in For structure For counter = 2 To 10 Step 2 Console. Write(counter & " ") Next End Sub ' Main For. Counter. vb Next marks end of loop End Module ' mod. For. Counter 2 4 6 8 10 Program Output 2002 Prentice Hall. All rights reserved. 5

6 5. 3 For/Next Repetition Structure For keyword Initial value of control variable Final

6 5. 3 For/Next Repetition Structure For keyword Initial value of control variable Final value of control variable Increment of control variable For counter = 2 To 10 Step 2 Control variable name Fig. 5. 3 2002 Prentice Hall. All rights reserved. To keyword Step keyword Components of a typical For/Next header.

7 5. 4 Examples Using the For/Next Structure • Examples – Vary the control

7 5. 4 Examples Using the For/Next Structure • Examples – Vary the control variable from 1 to 100 in increments of 1 • For i = 1 To 100 Step 1 – Vary the control variable from 100 to 1 in increments of – 1 • For i = 100 To 1 Step – 1 – Vary the control variable from 7 to 77 in increments of 7 • For i = 7 To 77 Step 7 – Vary the control variable from 20 to 2 in increments of – 2 • For i = 20 To 2 Step -2 2002 Prentice Hall. All rights reserved.

8 5. 4 Examples Using the For/Next Structure Establish initial value of control variable

8 5. 4 Examples Using the For/Next Structure Establish initial value of control variable counter = 1 Determine if final value of control variable has been reached counter < = 10 (implicit) false Fig. 5. 4 true Console. Write. Line( counter * 10) Body of loop (this can be multiple statements) counter += 1 (implicit) Increment the control variable Flowcharting a typical For/Next repetition structure. 2002 Prentice Hall. All rights reserved.

1 ' Fig. 5. 5: Sum. vb 2 ' Using For/Next structure to demonstrate

1 ' Fig. 5. 5: Sum. vb 2 ' Using For/Next structure to demonstrate summation. 3 4 Imports System. Windows. Forms Control variable 5 counts by 2, from 6 Module mod. Sum 2 to 100 7 Value of number is added in 8 Sub Main() each iteration to determine sum 9 10 Dim sum = 0, number As Integer of even numbers Text displayed 11 12 ' add even numbers from 2 to 100 in dialog Display a Message. Box 13 For number = 2 To 100 Step 2 Text displayed in 14 sum += number title bar 15 Next 16 17 Message. Box. Show("The sum is " & sum, _ 18 "Sum even integers from 2 to 100" , _ 19 Message. Box. Buttons. OK, Message. Box. Icon. Information) 20 End Sub ' Main 21 Indicate 22 End button Moduleto'be mod. Sum Outline Sum. vb OK button Indicate icon to be Information icon Program Output 2002 Prentice Hall. All rights reserved. 9

10 5. 4 Examples Using the For/Next Structure Fig. 5. 6 2002 Prentice Hall.

10 5. 4 Examples Using the For/Next Structure Fig. 5. 6 2002 Prentice Hall. All rights reserved. Icons for message dialogs.

11 5. 4 Examples Using the For/Next Structure Fig. 5. 7 2002 Prentice Hall.

11 5. 4 Examples Using the For/Next Structure Fig. 5. 7 2002 Prentice Hall. All rights reserved. Button constants for message dialogs.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ' Fig. 5. 8: Interest. vb ' Calculating compound interest. Imports System. Windows. Forms Module mod. Interest Outline Type Decimal used for precise monetary calculations Sub Main() Dim Dim amount, principal As Decimal ' dollar amounts rate As Double ' interest rate year As Integer ' year counter output As String ' amount after each year Perform calculation to Append year followed by the formatted principal = 1000. 00 determine amount in account rate = 0. 05 calculation result and newline character to end of String output = "Year" & vb. Tab & "Amount on deposit" & vb. Cr. Lf Interest. vb ' calculate amount after each year For year = 1 To 10 amount = principal * ( 1 + rate) ^ year output &= year & vb. Tab & _ String. Format( "{0: C}", amount) & vb. Cr. Lf Next ' display output Message. Box. Show(output, "Compound Interest", _ Message. Box. Buttons. Ok, Specify Message. Box. Icon. Information) C (for “currency”) as End Sub ' Main formatting code End Module ' mod. Interest 2002 Prentice Hall. All rights reserved. 12

Outline Program Output 2002 Prentice Hall. All rights reserved. 13

Outline Program Output 2002 Prentice Hall. All rights reserved. 13

14 5. 4 Examples Using the For/Next Structure Fig. 5. 9 2002 Prentice Hall.

14 5. 4 Examples Using the For/Next Structure Fig. 5. 9 2002 Prentice Hall. All rights reserved. String formatting codes.

5. 5 Select Case Multiple-Selection Structure • Multiple-Selection Structure – Tests expression separately for

5. 5 Select Case Multiple-Selection Structure • Multiple-Selection Structure – Tests expression separately for each value expression may assume – Select Case keywords begin structure • Followed by controlling expression – Compared sequentially with each case – Code in case executes if match is found – Program control proceeds to first statement after structure • Case keyword – Specifies each value to test for – Followed by code to execute if test is true – Case Else • Optional • Executes if no match is found • Must be last case in sequence 2002 Prentice Hall. All rights reserved. 15

1 ' Fig. 5. 10: Select. Test. vb 2 ' Using the Select Case

1 ' Fig. 5. 10: Select. Test. vb 2 ' Using the Select Case structure. 3 4 Module mod. Enter. Grades 5 6 Sub Main() 7 Dim grade As Integer = 0 ' one grade 8 Dim a. Count As Integer = 0 ' number of As 9 Dim b. Count As Integer = 0 ' number of Bs 10 Dim c. Count As Integer = 0 ' number of Cs 11 Dim d. Count As Integer = 0 ' number of Ds 12 Dim f. Count As Integer = 0 ' number of Fs Select Case begins 13 multiple-selection structure a grade, -1 to quit: " ) 14 Console. Write("Enter Controlling expression First Case executes if 15 grade = Console. Read. Line() 16 grade is exactly 100 17 ' input and process grades 18 While grade <> -1 Next Case executes if grade is 19 20 Select Case grade check which was input between' 90 and 99, the grade range being 21 specified with the To keyword 22 Case 100 ' student scored 100 23 Console. Write. Line("Perfect Score!" & vb. Cr. Lf & _ 24 "Letter grade: A" & vb. Cr. Lf) 25 a. Count += 1 26 27 Case 90 To 99 ' student scored 90 -99 28 Console. Write. Line("Letter Grade: A" & vb. Cr. Lf) 29 a. Count += 1 30 31 Case 80 To 89 ' student scored 80 -89 32 Console. Write. Line("Letter Grade: B" & vb. Cr. Lf) 33 b. Count += 1 34 Outline Select. Test. vb 2002 Prentice Hall. All rights reserved. 16

35 Case 70 To 79 ' student scored 70 -79 36 Console. Write. Line("Letter

35 Case 70 To 79 ' student scored 70 -79 36 Console. Write. Line("Letter Grade: C" & vb. Cr. Lf) 37 c. Count += 1 38 39 Case 60 To 69 ' student scored 60 -69 40 Console. Write. Line("Letter Grade: D" & vb. Cr. Lf) 41 Optional Case Else d. Count += 1 if no match executes 42 occurs with previous Cases 43 ' student scored 0 or 10 -59 (10 points for attendance) 44 Case 0, 10 To 59 45 Console. Write. Line("Letter Grade: F" & vb. Cr. Lf) 46 f. Count += 1 End Select marks 47 48 Case Else end of structure 49 50 ' alert user that invalid grade was entered 51 Console. Write. Line("Invalid Input. " & _ 52 "Please enter a valid grade. " & vb. Cr. Lf) 53 End Select 54 55 Console. Write("Enter a grade, -1 to quit: " ) 56 grade = Console. Read. Line() 57 End While 58 59 ' display count of each letter grade 60 Console. Write. Line(vb. Cr. Lf & _ 61 "Totals for each letter grade are: " & vb. Cr. Lf & _ 62 "A: " & a. Count & vb. Cr. Lf & "B: " & b. Count _ 63 & vb. Cr. Lf & "C: " & c. Count & vb. Cr. Lf & "D: " & _ 64 d. Count & vb. Cr. Lf & "F: " & f. Count) 65 66 End Sub ' Main 67 68 End Module ' mod. Enter. Grades Outline Select. Test. vb 2002 Prentice Hall. All rights reserved. 17

Enter a grade: 84 Letter Grade: B Outline Enter a grade: 100 Perfect Score!

Enter a grade: 84 Letter Grade: B Outline Enter a grade: 100 Perfect Score! Letter grade : A+ Enter a grade: 7 Invalid Input. Please enter a valid grade. Enter a grade: 95 Letter Grade: A Enter a grade: 78 Letter Grade: C Totals for each letter grade are: A: 2 B: 1 C: 1 D: 0 F: 0 Program Output 2002 Prentice Hall. All rights reserved. 18

19 5. 5 Select Case Multiple Case a true Case a action(s) true Case

19 5. 5 Select Case Multiple Case a true Case a action(s) true Case b action(s) true Case z action(s) false Case b . . . false Case z false Case Else action(s) Fig. 5. 11 Flowcharting the Select Case multiple-selection structure. 2002 Prentice Hall. All rights reserved.

20 5. 6 Do/Loop While Repetition Structure • Do/Loop While Repetition Structure – Similar

20 5. 6 Do/Loop While Repetition Structure • Do/Loop While Repetition Structure – Similar to While and Do/While – Loop-continuation condition tested after body executes • Loop body always executed at least once – Begins with keyword Do – Ends with keywords Loop While followed by condition 2002 Prentice Hall. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ' Fig. 5. 12: Do. While. vb ' Demonstrating the Do/Loop While repetition structure. Outline Module mod. Do. While Do keyword Loop While tested structure counter begins As Integer =Condition 1 ends structure after body executes Sub Main() Dim ' print values 1 to 5 Do Console. Write(counter & " ") counter += 1 Loop While (counter <= 5) Do. While. vb End Sub ' Main End Module ' mod. Do. While 1 2 3 4 5 Program Output 2002 Prentice Hall. All rights reserved. 21

22 5. 7 Do/Loop Until Repetition Structure action(s) true condition false Fig. 5. 13

22 5. 7 Do/Loop Until Repetition Structure action(s) true condition false Fig. 5. 13 Flowcharting the Do/Loop While repetition structure. 2002 Prentice Hall. All rights reserved.

23 5. 7 Do/Loop Until Repetition Structure • Do/Loop Until Repetition Structure – Similar

23 5. 7 Do/Loop Until Repetition Structure • Do/Loop Until Repetition Structure – Similar to Do Until/Loop structure – Loop-continuation condition tested after body executes • Loop body always executed at least once 2002 Prentice Hall. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ' Fig. 5. 14: Loop. Until. vb ' Using Do/Loop Until repetition structure Outline Module mod. Loop. Until Sub Main() Dim counter As Integer Condition tested = 1 body executes after ' print values 1 to 5 Do Console. Write(counter & " ") counter += 1 Loop Until counter > 5 Loop. Until. vb End Sub ' Main End Module ' mod. Loop. Until 1 2 3 4 5 6 7 8 9 Program Output 2002 Prentice Hall. All rights reserved. 24

25 5. 7 Do/Loop Until Repetition Structure action(s) condition false true Fig. 5. 15

25 5. 7 Do/Loop Until Repetition Structure action(s) condition false true Fig. 5. 15 Flowcharting the Do/Loop Until repetition structure. 2002 Prentice Hall. All rights reserved.

5. 8 Using the Exit Keyword in a Repetition Structure • Exit Statements –

5. 8 Using the Exit Keyword in a Repetition Structure • Exit Statements – Alter the flow of control • Cause immediate exit from a repetition structure – Exit Do • Executed in Do structures – Exit For • Executed in For structures – Exit While • Executed in While structures 2002 Prentice Hall. All rights reserved. 26

1 ' Fig. 5. 16: Exit. Test. vb 2 ' Using the Exit keyword

1 ' Fig. 5. 16: Exit. Test. vb 2 ' Using the Exit keyword in repetition structures. 3 4 Imports System. Windows. Forms 5 Loop specified to 6 Module mod. Exit. Test 7 execute 10 times Exit For statement 8 Sub Main() Program control executes when condition is proceeds 9 Dim output As String firsttostatement after the 10 Dim counter As Integer met, causingtoloop exit 11 structure 12 For counter = 1 To 10 13 14 ' skip remaining code in loop only if counter = 3 15 If counter = 3 Then is 3 when loop 16 Exit For starts, specified to execute 17 End If 18 until it is greater than 10 19 Next Exit Do executes when counter 20 21 output = "counter =is"5, &causing counterloop & _to exit 22 " after exiting For/Next structure" & vb. Cr. Lf 23 24 Do Until counter > 10 25 26 ' skip remaining code in loop only if counter = 5 27 If counter = 5 Then 28 Exit Do 29 End If 30 31 counter += 1 32 Loop 33 Outline Exit. Test. vb 2002 Prentice Hall. All rights reserved. 27

34 output &= "counter = " & counter & _ 5 when loop 35

34 output &= "counter = " & counter & _ 5 when loop 35 " after exiting Do Until/Loop counter structure"is & vb. Cr. Lf 36 starts, specified to execute 37 While counter <= 10 while less than or equal to 10 38 39 ' skip remaining code in loop only if counter = 7 40 If counter = 7 Then 41 Exit While 42 End If Exit While executes when 43 counter is 7, causing loop to 44 counter += 1 45 End While exit 46 47 output &= "counter = " & counter & _ 48 " after exiting While structure" 49 50 Message. Box. Show(output, "Exit Test", _ 51 Message. Box. Buttons. OK, Message. Box. Icon. Information) 52 End Sub ' Main 53 54 End Module ' mod. Exit. Test Outline Program Output 2002 Prentice Hall. All rights reserved. 28

29 5. 9 Logical Operators • Used to form complex conditions by combining simple

29 5. 9 Logical Operators • Used to form complex conditions by combining simple ones – Short-circuit evaluation • Execute only until truth or falsity is known – And. Also operator • Returns true if and only if both conditions are true – Or. Else operator • Returns true if either or both of two conditions are true 2002 Prentice Hall. All rights reserved.

30 5. 9 Logical Operators (II) • Logical Operators without short-circuit evaluation – And

30 5. 9 Logical Operators (II) • Logical Operators without short-circuit evaluation – And and Or • Similar to And. Also and Or. Else respectively • Always execute both of their operands • Used when an operand has a side effect – Condition makes a modification to a variable – Should be avoided to reduce subtle errors – Xor • Returns true if and only if one operand is true and the other false 2002 Prentice Hall. All rights reserved.

31 5. 9 Logical Operators (III) • Logical Negation – Not • Used to

31 5. 9 Logical Operators (III) • Logical Negation – Not • Used to reverse the meaning of a condition • Unary operator – Requires one operand • Can usually be avoided by expressing a condition differently 2002 Prentice Hall. All rights reserved.

32 5. 9 Logical Operators Fig. 5. 17 Truth table for the And. Also

32 5. 9 Logical Operators Fig. 5. 17 Truth table for the And. Also (logical AND) operator. 2002 Prentice Hall. All rights reserved.

33 5. 9 Logical Operators Fig. 5. 18 Truth table for the Or. Else

33 5. 9 Logical Operators Fig. 5. 18 Truth table for the Or. Else (logical OR) operator. 2002 Prentice Hall. All rights reserved.

34 5. 9 Logical Operators Fig. 5. 19 Truth table for the boolean logical

34 5. 9 Logical Operators Fig. 5. 19 Truth table for the boolean logical exclusive OR (Xor) operator. Fig. 5. 20 Truth table for operator Not (logical NOT). 2002 Prentice Hall. All rights reserved.

Outline Program Output 2002 Prentice Hall. All rights reserved. 35

Outline Program Output 2002 Prentice Hall. All rights reserved. 35

36 5. 9 Logical Operators Fig. 5. 22 Precedence and associativity of the operators

36 5. 9 Logical Operators Fig. 5. 22 Precedence and associativity of the operators discussed so far. 2002 Prentice Hall. All rights reserved.