The document discusses conditional execution in C++ using if, else if, and switch statements. It provides examples of calculating income tax based on different income levels using if/else if statements. It also covers logical operators, data types, and flowcharts for conditional execution.
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
20 views
Conditional Execution
The document discusses conditional execution in C++ using if, else if, and switch statements. It provides examples of calculating income tax based on different income levels using if/else if statements. It also covers logical operators, data types, and flowcharts for conditional execution.
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22
Conditional Execution
Let us calculate income tax
Write a program to read the income and print income tax, using following rules. If income is ≤180,000, then tax=0 If 180,000< income≤ 500,000, then tax is 10% of (income -180,000) If 500,000 < income≤800,000, then tax is 32,000+20% of (income-500,000) If income>800,000, then tax=92,000 +30% of (income-800,000 ) Basic if statement • Form If (condition) consequent • Condition: boolean expression • Boolean: should evaluate to “true” or “false” • Consequent : C++ statement, eg : assignment • Consequent could also be a block {...} o If condition evaluates to true, then the consequent is executed. o If condition evaluates to false, then the consequent is ignored Conditions • Simple condition: exp1 relop exp2 Relop : relational operator • <: less than. <= less than equal to. == equal to • >: greater than. >=greater than equal to. !=not equal to • Condition is considered true if exp 1 relates to exp 2 as per the specified relational operator • Eg:x=5,y=10,z=100 • x == y , false Flowchart • Pictorial representation of a program. • Statement put inside boxes. • If box C will possibly executed after box B, then put an arrow from B to C. • Convenient for showing conditional execution because there can be more than one “next” statement If statement - Flowchart Example { Float income; Cin >> income; If (income<=180000) Cout<<“No tax owed.”<<endl; If (income>180000) Cout<<“You owe tax”<<endl; } //Always checks both conditions //If first condition is true we know second is false and vice versa. But it checks both the statement under all conditions Another form of ‘if’ • If (condition) consequent else alternate • The condition is first evaluated • If it is true, then consequent is executed. • If condition is false, then alternate is executed. If else flowchart Example { Float income; If(income<=180000) Cout<<“no tax owed”<<endl; Else Cout<<“you owe a tax”<<endl; } //Only one condition check. Thus, more efficient than previous Most general form of ‘if’ If (condition1) consequent 1 Else if(condition 2) consequent 2 ...... Else if (condition n) consequent n Else alternate //optional • Evaluates conditions in order • Some condition true: execute corresponding consequent. • All condition false: execute alternate if specified Flowchart Example: Tax calculation Float tax, income; Cin>>income; If (income<=180000) tax=0; else if (income<=500000) Tax=(income-180000)*0.1; else if (income<=800000) Tax=(income-500000)*0.2+32000; Else Tax=(income-800000)*0.3+92000; Cout<<tax<<endl; } Error Float tax,income; Cin>>income; If (income<=180000) tax=0; if (income<=500000) Tax=(income-180000)*0.1; if (income<=800000) Tax=(income-500000)*0.2+32000; Else Tax=(income-800000)*0.3+92000; Cout<<tax<<endl; } More general form of condition Sometimes we might want to do something if two conditions are true or one of the two conditions are true. Compound conditions: • AND: condition1 && condition2 : true only if both true • OR : condition 1||condition2 : true only if at least one is true • NOT: !condition: true only if only condition is false • Components of compound conditions may themselves be compound conditions Eg : Condition1 && (condition2||condition3) Example • If ((income>180000) &&(income<=500000)) Tax=(income-180000)*0.1; Same condition may be expressed in many ways • (income>180000) is same as ! (income<180000) Precedence • ! Has higher precedence than && which has higher precedence than || Example: !P && Q || R ((!P) && Q)||R Switch statement General form: Switch(expression) { Case constant1: Group(1) statement usually ending with break; Case constant2: Group(2) statement usually ending with break; Default: Default group of statements; } • Expressions and constants must be integer Execution • The expression is evaluated • The resulting value is compared with constant1, constant 2 • If some constant 1 is found equal then • All the statements starting with group(1) are executed till the end of switch statement. If a break statement is found, then execution stops. • If any group of statement does not contain a break statement then next group is executed. • If no constant is found equal to the expression then the default group of statement is executed Logical data • C++ has a data type bool into which values of conditions can be stored. • Bool is named after George bool, who formalized the manipulation of conditions/logical data. Data type-bool • Bool highincome, lowincome; • Defines highincome and lowincome of type bool o Highincome=(income>800000); o Bool fun=true; • Will set highincome to true if the variable income contains value larger than 800000 • True and false: boolean constants Program to check if a given number ‘n’ is a prime { Int n, divisor=2; cin>>n; Bool divisorfound=false; //no divisor for n found so for. Repeat(n-2) { If(n%divisor==0) Divisorfound=true; Cout<<divisorfound; Divisor=divisor+1;