Download presentation
Presentation is loading. Please wait.
1
Conditinoal Constructs Review
what is a block? what is special about declaring a variable inside a block? what is a scope of a variable? what are conditional constructs? what type of conditional constructs have we studied? what is nested if? what is multiway-if? How does multiway-if relate to nested if? what is a switch statement? is it better than multiway-if? what does break inside switch do? what is conditional operator? conditional assignment? what construct can be used instead? what is programming idiom? what is a unary, binary, ternary operator?
2
Iterative Constructs while, for, do-while
3
Iterative Constructs provide
ability to execute the same code multiple times three constructs while statement do-while statement for statement
4
The while Statement expression body true false syntax
while (expression) body semantics if expression is true then execute body body is either a single statement or a block Iteration: execution of body iterate until expression evaluates to false example while (n != 0) { cin >> n; if (n > max) max = n; } expression body true false
5
The do-while Statement
while (n != 0 ) { cin >> n; if (n > max) max = n; } The do-while Statement syntax do body while (expression); semantics execute body if expression is true then do another iteration iterate until expression evaluates to false example int max=0, n; do { cin >> n; if (n > max) max = n; } while (n == 0); body expression true false
6
The for Statement initStatement false expression true body
postStatement syntax for(initStatement; expression; postStatement) body semantics execute initStatement evaluate expression, if true: iterate iteration: execute body execute postStatement repeat expression evaluation example for (int i = 0; i < 20; ++i) cout << "i is " << i << endl; loop variable - declared inside for its scope is body of the loop modifying loop variable inside body is poor style, use while instead
7
Iterate and Keep Track Idiom
what is idiom again? often need to iterate while keep track of some value across iterations – maximum value found, sum, if all positive, etc. idiom before loop, declare tracking variable to keep track, initialize it what is initialization again? inside loop, update tracking variable, use branching if necessary to examine after loop, use the tracking variable that accumulated the result example: cout << "Input number [0 to quit]: "; int max, n; cin >> n; max = n; while (n != 0 ) { cin >> n; if ( n > max) max = n; } cout << ”Maximum number: ” << max << endl;
8
Break and Continue with Iterative Constructs
break - exits innermost loop int sum=0; while(sum < 100) { int i; cin >> i; if (i< 0) { cout << ”found negative number\n”; break; } sum +=i; continue - skip the remaining statements and start a new iteration (evaluate expression) for (int i = 0; i < 20; ++i) { int intVar; cin >> intVar; if(intVar < 0) continue; avoid break/continue with loops as they make code less readable (make regular loop exit unnecessary) first try to code loop without them
9
Nesting of Iterative Constructs
iterative constructs can be nested: one iterative construct may be inside the body of another example: for (int i = 0; i < 10; ++i) // outer loop for (int j = 0; j < 10; ++j) // inner loop cout << i << j << endl; what would this code output? note, there is no need for curly brackets nesting may be more than two loops deep for/while/do-while can be mixed in nesting besides nested loops, loop body may contain other code including branching constructs: a branching construct nested in the loop
10
Iteration Key Points make sure there is a statement that will eventually falsify the looping construct expression (i.e., the loop must stop) make sure that all counters and tracking variables are initialized have a clear purpose for the loop good way to know if you do: can write clear comments above loop
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.