Branching statements

Post on 24-Feb-2016

46 views 0 download

Tags:

description

Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System CS240. Branching statements. T.Najah Al_Subaie. Objectives. By the end of this section you should be able to: - PowerPoint PPT Presentation

Transcript of Branching statements

BRANCHING STATEMENTST.Najah Al_Subaie

Kingdom of Saudi Arabia

Prince Norah bint Abdul Rahman University

College of Computer Since and Information System

CS240

Objectives By the end of this section you should be able to: Differentiate between sequence, selection, and

repetition structure. Differentiae between single, double and multiple

selection statements. Identify and use the C++ conditional operator

(?:) Use and explain what is meant by nested control

statements. Determine the problems that require the user of

nested control structure.

Control Structure (Logic Structure) Used to design data flow in modules and

programs as whole Basic structures:

Sequence structure: Process one instruction after another.

Selection structures: Decision structure

Make choices by using relational or logical operators Case structure

Enable to pick up one of a set of tasks Repetition structure:

Enable to repeat tasks.

Control structures in C++C++

Control Structure

Sequence structure

Selection Structure

If, if… else,

switch

Repletion structure

While, do…while,

for

Sequence-structure Activity Diagram

Add grade to total

Add 1 to counter

Corresponding C++ statement:total=total + grade;

Corresponding C++ statement:counter=counter + 1;

Selection Statements Three types:

Single selection statement Selects or ignores a single group of actions.

Double-selection statement Selects between tow groups of actions.

Multiple-selection statement Selects among many group of actions.

If Single Selection Statement Use the keyword if Begin with if followed by condition; then action or

group of actions (compound statements or blocks) are listed.

Enclose compound statements between braces {} and indent these statements

If condition is true , action is performed. Otherwise, actions is ignored

Example: if (grade >=60)cout<<“Passed”;

Pesudocode:If student grade is greater than or equal to 60Print “Passed”

If Single Selection Statement activity diagram

Grade >=60

Grade<60

Print “Passed”

If Single selection statementif (condition)action;

if (condition)action1;action2;

..…

.…

.…actionN;}

Condition can be relational or equality operators or any other expressions

if…else Double-selection Statement Use the keyword if and else Begin with if followed by condition; then

action ore group of actions are listed. End with else then action or group of

actions are listed. If condition is true, action that followed by if is performed. Otherwise, action that followed by else is performed.

Double Selection Statementif (condition)action1;

elseaction2;

Condition can be relational or equality operators or any other expressions

if…else double-selection statement activity diagram

Grade >=60Grade<60 Print “Passed”

Print “Failed”

if…else Double-selection StatementExample: If (grade >=60) cout<<“Passed”; else

cout<<“Failed”;

Pesudocode:if student's grade is greater than or equal to 60Print “passed”ElsePrint ”failed”

Nested if.. else Statements One inside another, test for multiple

cases Once condition met, other statements

skipped

Example:

Conditional Operator):?( Provide similare result of if…else double

selection statement Ternary operator requires three operands:

Condition Value when condition is true Value when condition is false

Syntax:Condition? Condition’s true value: condition’s false value

Conditional Operator):?( Example Grade>=60 ? Cout<<“Passed”:

cout<<“Failed”; Can be written as:cout<<(grade >=60 ? “passed”: “failed”);

Example:int i=1, j=2, max;max=(i>j ?i:j);

Nested if.. else Statementsif (conditioin1)action1;

elseif (condition2)action2;

elseif(condition3)

action3;…

elseactionN;

Nested if … else statementsif (condition1){if (condition2)action1;

else

}if (condtion3)action2;elseaction3;{}else

action4;

Nested if…else Statements Write the pesudocode for if…else

statements that prints A fro exam grades greater than or equal to 90,B for grades in the range 80 to 89, C for grades in the range 70 to 79, D for grades in the range 60 to 69 and F for all other grades.

Nested if .. else statements Example: if (grade>=90) // 90 and above gets “A”cout<< “A;”

elseif (grade >= 80) // 80-89 gets “B”cout<<“B;”

elseif(grade>=70) // 70-79 gets “C”

cout<<“C;”else

if(grade>=60) // 60-69 gets “D” cout<<“D;”

else // less than 60 gets “F” cout<<“F;”

Dangling –else Problem Each else associated with immediately

preceding if There is exception when placing braces {} Examplex=10; y=2;

if (x>5)if(y>5)cout<<“x and y are >5 “<<endl;

elsecout<<“x is <=5;”

Logical error !!

Dangling-else Problem Correctnessx=10; y=2;if(x>5){if(y>5)cout<<“x and y are >5”<endl;}elsecout<<“x is <=5”;

Example:

Using boolean variablesbool flag1, flag2;

if (flag1)----else----

if( flag1|| flag2)----else-----

Implicit Typecastingint x1,x2;

if(x1)…

else…

if(x1||x2)…

else….

Note Confusing the equality operator == with

the assignment operator = results in logic errors.#include <iostream>

using namespace std;int main (){

int num=0,x=0;

if (x=2)cout<<"x is equal to

2";else

cout<<"x is not equal to 2";

return 0;}

This message will always be printed !!

Switch Multiple-selection Statement Perform actions based on possible values of

variable or expression Use keywords switch, case, default and break. Begin with switch followed by controlling

expression. Value of expression compared to case label then

go to execute action for that case. No matching, the execution go to the optional default statement.

Break causes immediate exit from switch statement.

Switch Multiple-selection Statement

switch (expression){case value1:

action1;break;case value2:action2;break;

.…case valuen:actionN;break;default:action;{

Switch Multiple-selection Statement

Example:switch (number){case 0: cout<<“too small, sorry;”!

break;case 5: cout<<“good job!”<<endl; //fall throughcase 4: cout<<“nice pick!”<<endl; //fall throughcase 3: cout<<“excellent !”<<endl; //fall throughcase 2: cout<<“masterfull!”<<endl; //fall throughcase 1: cout<<“incredible!”<<endl; //fall throughbreak;{

Example:

Example: