Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIS162AB - C++ Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt)

Similar presentations


Presentation on theme: "CIS162AB - C++ Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt)"— Presentation transcript:

1 CIS162AB - C++ Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt)

2 CIS162AB2 Overview of Topics Pseudocode Control Structures Flowcharts Single and Compound Boolean Expressions Single and Compound Statements If, if-else, nested ifs While, do-while, nested loops

3 CIS162AB3 Pseudocode Pseudocode is a mixture of C++ code and English like statements. Used when designing algorithms. When designing, we don’t necessarily want to be concerned about where semi-colons go. We want to concentrate on the design. I’ll use pseudocode throughout the course, so don’t feel compelled to correct my syntax. However, if at anytime you are not sure about a command, please be sure to ask for clarification.

4 CIS162AB4 Flow Control The order in which statements are executed. There are four control structures. 1.Sequence Control Structure 2.Selection Control Structure Also referred to as branching (if and if-else) 3.Repetition Control Structure (loops) 4.Case Control Structure (switch)

5 CIS162AB5 Flowcharting A flowchart is a pictorial representation of an algorithm or logical steps. Each step is represented by a symbol and the arrows indicate the flow and order of the steps. The shape of the symbol indicates the type of operation that is to occur. Flowcharts may help the move visual students learn and understand logic.

6 CIS162AB6 Flowchart Symbols Begin or End Input or Output Processing Decision Branch or Direction of Flow

7 CIS162AB7 1. Sequence Control Structure The order statements are placed (sequenced) cin >> price >> qty; subtotal = price * qty; cout << subtotal; The only way to display the subtotal, statements must be in this order.

8 CIS162AB8 Flowchart – Sequence Control Begin Input price, qty subtotal = price * qty; Output subtotal End

9 CIS162AB9 2. Selection Control ( if ) Simple if with single statement. discountRate = 1.00; if (qty > 25) discountRate =.98; subtotal = qty * (price * discountRate);

10 CIS162AB10 Flowchart – if statement discountRate = 1.00; If qty > 25 Subtotal = qty * (price * discountRate); discountRate =.98; True False

11 CIS162AB11 Selection Control (if-else) Simple if-else with single statements. DISCOUNT_RATE =.98; if (qty > 25) subtotal = qty * (price * DISCOUNT_RATE); else subtotal = qty * price; cout << subtotal;

12 CIS162AB12 Flowchart – if-else statement DISCOUNT_RATE =.98; If qty > 25 Subtotal = qty * price; Subtotal = qty * (price * DISCOUNT_RATE); Output subtotal True False

13 CIS162AB13 Boolean Expressions Boolean expressions evaluate to true or false. Must be enclosed in parenthesis if (Boolean expression) true statements (Yes) else false statements (No)

14 CIS162AB14 Compound Statements Use braces to create a block of statements. if (hours > 40) { regularPay = 40 * payRate; overtimePay = (hours – 40) * (payRate * OVERTIME_RATE); } else { regularPay = hours * payRate; overtimePay = 0; } grossPay = regularPay + overtimePay;

15 CIS162AB15 Incorrect if-else if (hours > 40) { regularPay = 40 * payRate; overtimePay = (hours – 40) * (payRate * OVERTIME_RATE); } else regularPay = hours * payRate; overtimePay = 0; grossPay = regularPay + overtimePay; overtimePay would always be set to zero.

16 CIS162AB16 Boolean Expressions Simple Expressions –Have one comparison –(hours > 40) Compound Expressions –Have more than one comparison –Created by using And and Or operators –And - (qty > 0 && qty < 51) –Or - (qty 51)

17 CIS162AB17 And Operator - && Both conditions must be true. if (qty > 0 && qty < 51) { subtotal = qty * price; } else cout << “Quantity must be 1 – 50.”; What happens if qty = 0, qty = 25, or qty = 60? A block with a single statement is valid.

18 CIS162AB18 Or Operator - | | Either condition must be true. if (qty 50) { cout << “Quantity must be ”; } else subtotal = qty * price; What happens if qty = 0, qty = 25, or qty = 60?

19 CIS162AB19 Pipe Character - | Where is the pipe character on the keyboard? On most keyboards –It is right above the Enter key –Shares the key with the back slash - \ –Must hold the shift key go get it –Instead of a solid line, it is shown as a broken line For the Or operator, 2 pipe characters must be entered - | |. For the And operator, 2 ampersands characters must be entered - &&.

20 CIS162AB20 Notes on Boolean Expressions Short-circuit evaluation – if the evaluation of the entire expression can be determined by the result of the first expression, the second expression is not evaluated. int y =1, x =0; if (y > 0| | x > 0)// T or F Not operator (!): ( y != 0) //This statement is OK, but the not ( !(y= =0)) //outside the parentheses can be confusing.

21 CIS162AB21 Booleans Only True or False C++ does the math to get to a True or False. true = 1, false = 0 Non-zeros converted to true, which is a one. if ( (5 && 7) + (!6) ) T && T + (!T) T + F = 1 = T

22 CIS162AB22 Nested if Statements - Indented if (qty > 0) if (qty < 51) subtotal = qty * price; else cout << “Quantity must be < 51”; else cout 0”;

23 CIS162AB23 Matching else to if How are else statements matched with an if? Compiler works it’s way back. When an else is encounter, it looks back to find an if that has not been matched to an else. Why do we indent each level? We indent to make programs easier to read. Indenting has no effect on how compiler matches an else to an if.

24 CIS162AB24 Multiway Branching Indenting not always practical if (qty < 26) discount = 0 else if (qty < 51) discount =.01 else if (qty < 76) discount =.02 else if (qty < 101) discount =.03 … more

25 CIS162AB25 Multiway Branching if (qty < 26) discount = 0 else if (qty < 51) discount =.01 else if (qty < 76) discount =.02 else if (qty < 101) discount =.03 else discount =.04;

26 CIS162AB26 Conditional Operator Expression if (qty > 25) discountRate = 0.98; else discountRate = 1.00; discountRate = (qty > 25) ?.98 : 1.00;

27 CIS162AB27 Assignment (=) vs Comparison (==) if (x = 12) // always true if (x == 12) // comparison To prevent accidental assignment, state constant first. if (12 = x) Compiler will report this as a syntax error.

28 CIS162AB28 3. Repetition Control (loops) loop – a group of statements that are repeated until a certain conditions occurs to stop it. while loop do-while loop for-loop (covered later)

29 CIS162AB29 While Loop Example count = 3; //initialize controlling variable while (count > 0) { cout << count; count--; } Output: 3 2 1

30 CIS162AB30 While Loop Controlling Boolean expression evaluated before executing loop body. Controlling variable must be initialized. Boolean expression must be true to enter loop body. No semicolon after Boolean expression. It is possible that body is not executed at all. Boolean expression must be false to get out of loop. Controlling variable must be modified inside loop. Execution continues with next statement after loop.

31 CIS162AB31 Flowchart – While Loop count = 3 while count > 0 Output count count-- Next statement False True Skip or Exit LoopRepresents Loop Initialization important for While Loop

32 CIS162AB32 Do-while Loop Example count = 3; do { cout << count; count--; }while (count > 0); Output: 3 2 1

33 CIS162AB33 Do-while Loop Controlling Boolean expression evaluated after executing body. So, body is always executed at least one time. Initialization of controlling variable not necessarily required if it will be initialized inside the loop. Boolean expression must be false to get out of loop. Controlling variable must be modified inside loop. Semicolon required after Boolean expression. Execution continues with next statement after loop.

34 CIS162AB34 Flowchart – Do-while Loop count = 3 while count > 0 Output count count-- Next statement False - Exit Loop True Loop will be executed at least one time, because the condition is at the bottom. Represents Loop

35 CIS162AB35 Loop Summary Incrementor: count++ Decrementor: count-- Infinite loop – expression that always evaluates to true –Avoid using = = as the operator. –Controlling variable must be altered within the loop. –Use Control-C to terminate an infinite loop. When to use a while or do-while will become evident as we continue to use and learn each loop.

36 CIS162AB36 Nested Loops count = 3; while (count > 0) { cout << endl << count; count--; count2 = 1; do { cout << count2; count2++; } while (count2 < 4); }

37 CIS162AB37 While Loop Error Semi-colon after expression creates an infinite loop with a single statement that does nothing. DO NOT DO THIS. while (count > 0); { cout << count; count--; }

38 CIS162AB38 4. Case Control Structure Switch statement covered later.

39 CIS162AB39 Summary Control Structures Flowcharts Single and Compound Boolean Expressions Single and Compound Statements If, if-else, and nested ifs While, do-while, and nested loops


Download ppt "CIS162AB - C++ Flow Control if, while, do-while Juan Marquez (03_flow_control.ppt)"

Similar presentations


Ads by Google