Presentation is loading. Please wait.

Presentation is loading. Please wait.

By Hector M Lugo-Cordero September 3, 2008

Similar presentations


Presentation on theme: "By Hector M Lugo-Cordero September 3, 2008"— Presentation transcript:

1 By Hector M Lugo-Cordero September 3, 2008
Flow Control By Hector M Lugo-Cordero September 3, 2008 Department of Electrical and Computer Engineering

2 The Department of Electrical and Computer Engineering
Outline Conditions Selection ? if if … else If … else if … else Switch Cycles While Do while For Jump Statements Break Continue Go to Try and catch The Department of Electrical and Computer Engineering

3 The Department of Electrical and Computer Engineering
Conditions Conditions are expressions that can be either true or false x > 0 is true if x is greater than zero Operators Equal ( == ): x == y  x equals y Greater ( > ): x > y  x is greater than y Less ( < ): x < y  x is smaller than y Not equal ( != ): x != y  x is not equal to y Greater or equal ( >= ): x >= y Less or equal ( <= ): x <= y The Department of Electrical and Computer Engineering

4 The Department of Electrical and Computer Engineering
Conditions (cont.) Complex conditions Test more than one condition And ( && ) is true if and only if both conditions are true x >= 0 && x <= 9 is true if x is between 0 and 9 inclusive Or ( || ) is true if one of the conditions is true x < -3 || x > 10 is true if x is smaller than -3 or greater than 10 Not ( ! ) Negates the result of an expression The Department of Electrical and Computer Engineering

5 The Department of Electrical and Computer Engineering
Truth Tables A B A && B A || B !A False True The Department of Electrical and Computer Engineering

6 The Department of Electrical and Computer Engineering
Selections Selections alter the flow of the program which is typically sequential (line by line) Selections are made according to the value of a Boolean expression The Department of Electrical and Computer Engineering 6

7 The Department of Electrical and Computer Engineering
Selection (?) Syntax <var> = <condition> ? <true_value> : <false_value> Execution Evaluates <condition> If true stores <true_value> into <var> Else stores <false_value> into <var> Example int x = -9; int y = x < 0 ? -1*x : x; cout << “|” << x << “| = ” << y << endl; Prints: |-9| = 9 The Department of Electrical and Computer Engineering 7

8 The Department of Electrical and Computer Engineering
If Syntax if(<condition>){ … } else if(<condition>){ … } //optional else //optional Execution If the condition is true then the if block is executed Optional One can add else if to test other conditions in case the first is not met. The first that becomes truth will be executed and the others won’t be tested. Else can be added if none of the conditions is met then execute the else code. The Department of Electrical and Computer Engineering 8

9 The Department of Electrical and Computer Engineering
If (cont.) Example int x = 0; cin >> x; if(x == 0){ cout << “The number is 0” << endl; } else if(x > 0){ cout << “The number is positive” << endl; else{ cout << “The number is negative” << endl; The Department of Electrical and Computer Engineering 9

10 The Department of Electrical and Computer Engineering
Switch Syntax switch(<var>) { case <value1>: break; case <value2>: default: } Execution Evaluates the variable <var> Executes the code in the block of the corresponding value If no break is found it continues to evaluate each case Default is executed if no case is true or no break is found The Department of Electrical and Computer Engineering 10

11 The Department of Electrical and Computer Engineering
Switch (cont.) Example int x = 9; x = x % 2; switch(x) { case 0: cout < “x is even” << endl; x = 1; break; case 1: cout << “x is odd” << endl; default: cout << “This should never happen” << endl; } The Department of Electrical and Computer Engineering 11

12 The Department of Electrical and Computer Engineering
Cycles Repeats a single action or a block as long as the condition evaluated is true It may vary the behavior depending on what cycle is used The Department of Electrical and Computer Engineering 12

13 The Department of Electrical and Computer Engineering
While Syntax while(<condition>){ } Execution Evaluates the condition and if true executes the while block Examples int i = 0; while(i < 10){ cout << i << endl; ++i; while(1){ … } or while(true) { … } The Department of Electrical and Computer Engineering 13

14 The Department of Electrical and Computer Engineering
Do While Syntax do{ }while(<condition>); Execution Executes the do-while block and then checks the condition (guaranteed that will execute at least once) Examples int sum = 0; int x = 0; cout << “Enter the next non-zero number to add to the sum: ”; cin >> x; sum += x; }while(x != 0); cout << “The sum is “ << sum << endl; The Department of Electrical and Computer Engineering 14

15 The Department of Electrical and Computer Engineering
For Syntax for(<data_type> <var> = <init_value>; <condition>; <increment>){ … } Execution Starts the variable <var> in <init_value> and checks the condition to see if it is true. If so it executes the for block and then the increment. Else exists the for loop. Examples for(int i = 0; i < 100; ++i){ cout << i << endl;} for(double j = 0.0; j < 5; j += 0.5){ … } for(long k = 1500; k >= 0; --k){ … } int x = 3; for(; x > 0; --x); //just runs 3 times and does nothing for(; ;++x) for( ; ; ) The Department of Electrical and Computer Engineering 15

16 Jump Statements (discouraged?)
Goto: jumps to a specific location in the code Continue: Skips the rest of the current iteration in a cycle and passes to the check the condition Break: exits the current control structure (cycle) Syntax goto <label> continue; break; The Department of Electrical and Computer Engineering 16

17 Jump Statements (discouraged?)
Example int x = 0 theloop: cout << x << endl; if(x == 5) //there is no { and } why ? continue; else if(x == 10) break; else{ //now there are the { and }  ++x; goto theloop; } The Department of Electrical and Computer Engineering 17

18 The Department of Electrical and Computer Engineering
Try and catch Syntax: try{ … throw <value> ... } catch(<data_type> <var_name>){ Execution: Tries to execute the block inside of the try If an exception is thrown the catch block is executed. An exception is an error that shouldn’t occur and causes your program to crash The Department of Electrical and Computer Engineering 18

19 The Department of Electrical and Computer Engineering
Try and catch (cont.) Example: try{ if(x == 0) throw “Division by zero exception”; else div = y/x; } catch(char* exp){ cerr << exp << endl; Note that we can throw strings, int, etc. Later we will develop our own exceptions The Department of Electrical and Computer Engineering 19

20 The Department of Electrical and Computer Engineering
Try and catch (cont.) // bad_alloc standard exception #include <iostream> #include <exception> using namespace std; int main () { try { int* myarray= new int[1000]; } catch (exception& e) { cerr << "Standard exception: " << e.what() << endl; return 0; The Department of Electrical and Computer Engineering 20

21 The Department of Electrical and Computer Engineering
Try and catch (cont.) Exception Description bad_alloc thrown by new on allocation failure bad_cast thrown by dynamic_cast when fails with a referenced type bad_exception thrown when an exception type doesn't match any catch The Department of Electrical and Computer Engineering 21

22 The Department of Electrical and Computer Engineering
Questions? ? The Department of Electrical and Computer Engineering


Download ppt "By Hector M Lugo-Cordero September 3, 2008"

Similar presentations


Ads by Google