Download presentation
Presentation is loading. Please wait.
Published byLora McCoy Modified over 9 years ago
1
AEEE 195 – Repetition Structures: Part B Spring semester 2011
2
2 Outline Repetition structures definition “while” loop “do/while” loop Inifite loop Arithmetic operators Examples
3
3 Repetition Structures Are structures that allow you to repeat execution of the same code That is, you can execute particular statements more than once in a controlled fashion Statements are executed as long as some condition remains true Also known as “loops” Sometimes referred to as “iterations”
4
4 “ while ” Repetition Structure Actions will be performed as long as some condition is true For example (pseudocode), while (something is true) { do this (again and again...) } Can have various kinds of conditions tested
5
5 Parts of a While Loop Every while loop will always contain three main elements: Priming: initialize your variables. Testing: test against some known condition. Updating: update the variable that is tested.
6
6 Simple While Loop #include #define MAX 10 main () { int index =1; while (index <= MAX) { printf ("Index: %d\n", index); index = index + 1; } OUTPUT: Index: 1 Index: 2 Index: 3 Index: 4 Index: 5 Index: 6 Index: 7 Index: 8 Index: 9 Index: 10 1. Priming 2. Test Condition 3. Update
7
7 While Loop Flowchart 1. Priming Set index=1 2. Test index <= 10 3a. print index 3b. Update index = index + 1; TRUE FALSE next iteration
8
8 Infinite Loop Infinite Loop: A loop that never ends. Generally, you want to avoid these! There are special cases, however, when you do want to create infinite loops on purpose.
9
9 Infinite Loop: Example #1 #include #define MAX 10 main () { int index =1; while (index <= MAX) { printf ("Index: %d\n", index); } Here, part 3 is deleted : the index = index + 1 statement. Index: 1 … [forever]
10
10 Infinite Loop: Example #2 #include /*no MAX here*/ main () { int index = 1; while (index > 0) { printf ("Index: %d\n", index); index = index + 1; } Here, part 2 has changed : the test condition. Index: 1 Index: 2 Index: 3 Index: 4 Index: 5 … [forever]
11
11 “ do/while ” Repetition Structure Similar to the while structure But instead of testing the condition at the top, test is at the bottom of the loop Used when you want to execute the loop AT LEAST ONCE
12
12 do/while pseudocode do { something } while (condition is true) ; Note the semicolon at the end
13
13 do/while example int iCounter = 1; do { printf( “%d “, iCounter ); iCounter = iCounter + 1; } while ( iCounter <= 10 ) ;
14
14 do/while loop Flowchart 1. Priming Set index=1; 3. Test index <= 10 2a. print index 2b. Update index = index + 1; TRUE FALSE
15
15 Example: while vs do-while structures int num; printf(“Give a positive number: ); scanf(“%d”, &num); while(num <=0) { printf(“Give a positive number: ); scanf(“%d”, &num); } printf(“The number is %d\n”, num); int num; do { printf(“Give a positive number: ); scanf(“%d”, &num); } while(num <=0); printf(“The number is %d\n”, num);
16
16 Shortcuts C provides abbreviations for some common operations Assignment operators Increment/Decrement operators
17
17 Assignment Operators Abbreviations are provided for the basic binary operations Addition Subtraction Multiplication Division Modulus (%)
18
18 Addition Assignment Operator Instead of writing iCount = iCount + 1; You can write iCount += 1 ; Adds the value of the expression on the right to the variable on the left and stores the new total in the variable on the left
19
19 Subtraction Assignment Operator Instead of writing iCount = iCount - 1; You can write iCount -= 1 ; Subtracts the value of the expression on the right from the variable on the left and stores the new total in the variable on the left
20
20 Multiplication Assignment Operator Instead of writing iCount = iCount * 2; You can write iCount *= 2; Multiplies the variable on the left by the value of the expression on the right and stores the new total in the variable on the left
21
21 Division Assignment Operator Instead of writing iCount = iCount / 2; You can write iCount /= 2; Divides the variable on the left by the value of the expression on the right and stores the new total in the variable on the left
22
22 Modulus Assignment Operator Instead of writing iSeconds = iSeconds % 60; You can write iSeconds %= 60; Takes the remainder of dividing the variable on the left by the value of the expression on the right, and stores the new total in the variable on the left
23
23 Examples Assume variable int c = 10; 3 to cc = c % 7;c %= 7;10%= 2 to cc = c / 5;c /= 5;10/= 60 to cc = c * 6;c *= 6;10*= 7 to cc = c – 3;c -= 3;10-= 17 to cc = c + 7;c += 7;10+= AssignsMeaningSample Initial Value Operator
24
24 Increment and Decrement Operators C provides unary increment operators ++ and decrement operators –- (no spaces between them) Increment operators add 1 Decrement operators subtract 1 Not for other assignment operators (*, /, %)
25
25 Increment Operator ++ Instead of writing iCount = iCount + 1; or iCount += 1; You can write iCount++ ; ( post-increment ) or ++iCount ; ( pre-increment)
26
26 Post-increment The ++ operator is after the variable Causes the initial value of the variable to be used in the expression where it appears, and THEN adds the 1 to the variable For example, int iCount = 5; printf( “%d\n”, iCount++ ); Would print 5… but iCount is incremented to 6 after the statement
27
27 Pre-increment The ++ operator is before the variable Adds 1 to the initial value of the variable BEFORE it is used in the expression where it appears For example, int iCount = 5; printf( “%d\n”, ++iCount); Would print 6… and iCount is incremented to 6 after the statement
28
28 More examples ++ post-increment vs. pre-increment int iTotal = 0; int iCount = 5; iTotal = iCount++ * 2; printf( “%d\n”, iTotal); printf( “%d\n”, iCount); Would print 10 for iTotal and then 6 for iCount iTotal = ++iCount * 2; printf( “%d\n”, iTotal); printf( “%d\n”, iCount); Would print 14 for iTotal and then 7 for iCount
29
29 Decrement Operator -- Similar to increment in syntax/operation Instead of writing iCount = iCount - 1; or iCount -= 1; You can write iCount-- ; or --iCount ;
30
30 Post-decrement The -- operator is after the variable Causes the initial value of the variable to be used in the expression where it appears, and THEN subtracts the 1 from the variable For example, int iCount = 5; printf( “%d\n”, iCount-- ); Would print 5… but iCount is decremented to 4 after the statement
31
31 Pre-decrement The -- operator is before the variable Subtracts 1 from the initial value of the variable BEFORE it is used in the expression where it appears For example, int iCount = 5; printf( “%d\n”, --iCount); Would print 4… and iCount is decremented to 4 after the statement
32
32 More examples -- post-decrement vs. pre-decrement int iTotal = 0; int iCount = 5; iTotal = iCount-- * 2; printf( “%d\n”, iTotal); printf( “%d\n”, iCount); Would print 10 for iTotal and then 4 for iCount iTotal = --iCount * 2; printf( “%d\n”, iTotal); printf( “%d\n”, iCount); Would print 6 for iTotal and then 3 for iCount
33
33 Summary Table Subtract 1 from c THEN use new value of c in expression --c-- Use value of c in expression THEN subtract 1 from c c---- Add 1 to c THEN use the new value of c in expression ++c++ Use value of c in expression THEN add 1 to c c++++ ExplanationSampleOperator
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.