Programming Fundamental Instructor Name: Lecture-6 Today’s Lecture Decision Making (Continue) Conditional operator (ternary Operator) Switch Statement Switch Statement Rules Break Statement goto Statement 2 Example A company insures its drivers in the following cases ―If driver is married ―If the driver is unmarried, male & above 30 years of age ―If the driver is unmarried, female & above 25 years of age Nested If example main() { char gender,ms; int age; cout<< "enter age , gender, marital status"; cin>>age>>gender>>ms; if(ms=='M') cout<<"driver is insured"; else { if(gender=='M') { if(age>30) cout<<"driver is insured"; else cout<<"driver is not insured"; } else { if (age>25) cout<<"driver is insured"; else cout<<"Driver is not insured"; } } getch(); Logical Operator example #include<iostream.h> #include<conio.h> main() { char gender, ms; int age; cout<<"enter the age gender cin>>age>>gender>>ms; martial status"; if((ms=='M')|| (ms=='U'&& gender=='M' && age>30)|| (ms=='U' && gender=='F' && age>25)) cout<<"Driver is insured"; else cout<<"driver is not insured"; getch(); } Decision Making in C++ Conditional Operator The simple if/else statement can be replaced with a conditional operator (?). The other names used for conditional operator are: Ternary operator Inline if (iif) Ternary if The conditional operator is a ternary operator that takes three operands. The syntax of conditional operator is as follows Conditional_expression ? expression1 : expression2; if the conditional Expression is true, expression1 executes, otherwise if the conditional Expression is false, expression 2 executes. 6 Decision Making in C++ Conditional Operator The first operand (conditional expression)is implicitly converted to bool. It is evaluated and all side effects are completed before continuing. If the first operand (conditional expression) evaluates to true (1), the second operand (expression1 ) is evaluated. If the first operand (conditional expression) evaluates to false (0), the third operand (expression2;) is evaluated. The result of the conditional operator is the result of whichever operand is evaluated — the second or the third. Only one of the last two operands is evaluated in a conditional expression. 7 Decision Making in C++ Conditional Operator – Example using namespace std; #include<iostream> void main() { int x,y; cout<< "Enter two integers: "; cin>>x>>y; cout<<x << (x ==y ? " is" : " is not") <<" equal to "<< y; } Output of the program Enter Two Digits: 3 3 3 is equals to 3 8 Decision Making in C++ Switch Structure All the problem we discussed so far, we see that there are two approaches for a multi way decision. In the first approach, we use as many if statements as needed. This is an expensive approach. The second is the use of nested if statements. Which is little more efficient than the first one. In the 'nested if statements' the nested else is not executed if the first if condition is true and the control goes out of the if block. The C++ language provides us a stand-alone construct to handle these instances. This construct is switch structure. 9 Decision Making in C++ Switch Structure The switch structure is a multiple-selection construct that is used in such cases (multi way decisions) to make the code more efficient and easy to read and understand. A switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each case. if a case label matches, the statements after the case label are executed. If no case label matches the switch expression, the code under the default label is executed (if it exists). 10 Decision Making in C++ Switch Structure The Syntax for switch statement is as follow switch(expression){ case constant-expression : statement(s); break; //optional case constant-expression : statement(s); break; //optional //any number of case statements. default : //Optional statement(s); } 11 Decision Making in C++ Switch Structure[Flow Chart] 12 Decision Making in C++ Switch Structure [ RULES] The expression used in a switch statement must have an integral or enumerated type, or be of a class type in which the class has a single conversion function to an integral or enumerated type. You can have any number of case statements within a switch. Each case is followed by the value to be compared to and a colon. The constant-expression for a case must be the same data type as the variable in the switch, and it must be a constant or a literal. When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached. 13 Decision Making in C++ Switch Structure [ RULES] When a break statement is reached, the switch terminates, and the flow of control jumps to the next line following the switch statement. Not every case needs to contain a break. If no break appears, the flow of control will fall through to subsequent cases until a break is reached. A switch statement can have an optional default case, which must appear at the end of the switch. The default case can be used for performing a task when none of the cases is true. No break is needed in the default case. 14 Decision Making in C++ Switch Implementation Write a program that has a switch structure. The switch structure will check different cases for grades. Implement your switch structure as follows If grade is A then display “Excellent” If grade is B or C then display “Well Done” If grade is D the display “You passed” If grade is F then display “You are Fail” 15 Decision Making in C++ void main () { char grade = 'D'; switch(grade) { case 'A' : cout << "Excellent!\n"; break; case 'B' : case 'C' : cout << "Well done\n"; break; case 'D' : cout << "You passed\n“; break; case 'F' : cout << “You are Fail\n"; break; default : cout << "Invalid grade\n"; } } 16 Decision Making in C++ Switch Implementation We will see the use of ' the letter a' instead of 'A' can affect our program. We want our program to be user- friendly. We don’t want to restrict the user to enter the grade in capital letters only. So we have to handle both small and capital letters in our program. Here comes the limitations of switch statement. We have to make two separate cases so we write case ‘A” : case ‘a’ : statements; Home Activity: Rewrite Code 17 Decision Making in C++ Break Statement The break statement interrupts the flow of control. In switch statement, when a true case is found, the flow of control goes through every statement down ward. We want that only the statements of true case should be executed and the remaining should be skipped. For this purpose, we write the break statement after the statements of a case. Thus, when a true case is found and its statements are executed then the break statement interrupts the flow of control and the control jumps out of the switch statement. 18 Decision Making in C++ Break Statement If we want to do the same task for two cases, like in previous example for ‘A’ and ‘a’, then we don't put break statement after the first case. We write both the cases (or the cases may be more than two) line by line then write the common statements to be executed for these cases and then write the break statement. The break statement is necessary in switch structure, without it the switch structure becomes illogic. As without it all the statement will execute after first match case is found. 19 Example Example If alpha input is 5 , what will be alpha value after processing cin>>alpha; switch (alpha) { case 1: case 2: alpha = alpha + 2; break; case 4: alpha++; case 5: alpha = 2 * alpha; case 6: alpha = alpha + 5; break; default: alpha--; } If alpha input is 5 , what will be alpha value after processing cin>>alpha; switch (alpha) { case 1: case 2: alpha = alpha + 2; break; case 4: alpha++; case 5: alpha = 2 * alpha; case 6: alpha = alpha + 5; break; default: alpha--; } If a is 6 cin >> a; if (a > 0) switch (a) { case 1: a = a + 3; case 3: a++; break; case 6: a = a + 6; case 8: a = a * 8; break; default: a--; } else a = a + 2; Practice Problem Write a program that prompt the user to enter two numbers and one “Arithmetic Operator” . Program should perform the Arithmetic operation on that numbers and display result. Decision Making in C++ goto Statement The goto is an unconditional branch of execution. The goto statement is used to jump the control anywhere (back and forth) in a program. To understand and decode such programs that contain unconditional branches is almost impossible. It is very difficult, for a programmer, to keep the track of execution as the control jumps from one place to the other and from there to anywhere else. It is very difficult to trace out the way of execution and figure out what the program is doing. 26 27
© Copyright 2024