10
Branching Constructs Review what are branching constructs? what type of branching 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 assignment? what construct can be used instead? what are named constants? why are they needed? what is a block? what is special about declaring a variable inside a block? what is a scope of a variable? what is programming idiom? what is a unary, binary, ternary operator? 1

Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Embed Size (px)

Citation preview

Page 1: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Branching Constructs Review what are branching constructs? what type of branching

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 assignment? what construct can be used

instead? what are named constants? why are they needed? what is a block? what is special about declaring a variable

inside a block? what is a scope of a variable? what is programming idiom? what is a unary, binary, ternary operator?

1

Page 2: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Iterative Constructs

while, for, do-while

Page 3: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Iterative Constructs

provide ability to execute the same code multiple times

three constructs while statement do-while statement for statement

3

Page 4: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

The while Statement

syntax

while (expression)

action semantics

if expression is true then execute action

repeat this process until expression evaluates to false

action is either a single statement or a block

expression

action

true false

4

Page 5: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

The do-while Statement syntax

do

action

while (expression); semantics

execute action if expression is true then

execute action again repeat this process until

expression evaluates to false

action is either a single statement or a block

action

true

false

expression

5

Page 6: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

The for Statement syntax for(init_statement; expression; post_statement)

action semantics

execute init_statement evaluate expression if true

– execute action

– execute post_statement

– repeat example

for (int i = 0; i < 20; ++i) cout << "i is " << i << endl;

expression

action

true

false

init_statement

post_statement

6

Page 7: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Iterate and Keep Track Idiom what is idiom again? often need to iterate while keep track of some value across iterations –

maximum found, sum, if all positive, etc. idiom

before loop declare variable to keep track, initialize it 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;7

Page 8: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

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)int sum=0;for (int i = 0; i < 20; ++i) {

int intVar; cin >> intVar;if(intVar < 0) continue;sum +=i;

} avoid break/continue with loops as they make code less readable (avoid regular

loop exit) first try to code loop without them 8

Page 9: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

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

9

Page 10: Branching Constructs Review l what are branching constructs? what type of branching constructs have we studied? l what is nested if? l what is multiway

Iteration

key points make sure there is a statement that will eventually nullify the

iteration criterion (i.e., the loop must stop) make sure that initialization of any loop counters or iterators is

properly performed have a clear purpose for the loop

document the purpose of the loop and how the body of the loop advances the purpose of the loop

10