When series of actions have to be performed based on decisions one–by-one, then the statement used is called if-else-if ladder. In computer programming it is called multi-way decision statement. The if-else-if ladder is a form of nested if-statement. Here, nesting is allowed only in the else part. The orderly nesting of if statement only in the else part is called if-else-if ladder. The syntax of if-else-if ladder is shown below:
Syntax:
if(condition1)
statement(s);
else if(condition2)
statement(s);
else if(condition3)
statement(s);
-
-
-
else if(conditionn)
statement(s);
else
statement(S);
In this statement the conditions condition1, condition2 etc. of if-else-if ladder are evaluated to true, the corresponding statement is executed and control comes out of the entire if-else-if ladder executing the rest statements that come after the if-else-if ladder.
If all the conditions are evaluated to false, then the last statement is executed, and the control comes out of if-else-if ladder and the rest statements that come after the if-else-if ladder are executed.
Problem:
Let consider a problem to display the grade obtained by a student based on the marks. The criteria to find the grade based on marks as follows:
Marks Grade
0 to 34 F
35 to 44 E
45 to 59 D
60 to 69 C
70 to 79 B
80 to 89 A
90 to 100 A+
Algorithm:
Step1: Read: Marks
Step2: if(Marks<=34)
Write: ‘Grade F’
else if(Marks<=45)
Write: ‘Grade E’
else if(Marks<=59)
Write: ‘Grade D’
else if(Marks<=69)
Write: ‘Grade C’
else if(Marks<=79)
Write: ‘Grade B’
else if(Marks<=89)
Write: ‘Grade A’
else
Write: ‘Grade A+’
[End of if-else-if]
Step3: Exit
Here's the C program to solve the above problem.
main()
{
int marks;
clrscr();
printf(“Enter the student’s obtained marks here:\n”);
scanf(“%d”,&marks);
if(marks<=34)
printf(“Grade F”);
else if(marks<=45)
printf(“Grade E”);
else if(marks<=59)
printf(“Grade D”);
else if(marks<=69)
printf(“Grade C”);
else if(marks<=79)
printf(“Grade B”);
else if(marks<=89)
printf(“Grade A”);
else
printf(“Grade A+”);
getch();
}
Output
Syntax:
if(condition1)
statement(s);
else if(condition2)
statement(s);
else if(condition3)
statement(s);
-
-
-
else if(conditionn)
statement(s);
else
statement(S);
In this statement the conditions condition1, condition2 etc. of if-else-if ladder are evaluated to true, the corresponding statement is executed and control comes out of the entire if-else-if ladder executing the rest statements that come after the if-else-if ladder.
If all the conditions are evaluated to false, then the last statement is executed, and the control comes out of if-else-if ladder and the rest statements that come after the if-else-if ladder are executed.
Problem:
Let consider a problem to display the grade obtained by a student based on the marks. The criteria to find the grade based on marks as follows:
Marks Grade
0 to 34 F
35 to 44 E
45 to 59 D
60 to 69 C
70 to 79 B
80 to 89 A
90 to 100 A+
Algorithm:
Step1: Read: Marks
Step2: if(Marks<=34)
Write: ‘Grade F’
else if(Marks<=45)
Write: ‘Grade E’
else if(Marks<=59)
Write: ‘Grade D’
else if(Marks<=69)
Write: ‘Grade C’
else if(Marks<=79)
Write: ‘Grade B’
else if(Marks<=89)
Write: ‘Grade A’
else
Write: ‘Grade A+’
[End of if-else-if]
Step3: Exit
Here's the C program to solve the above problem.
main()
{
int marks;
clrscr();
printf(“Enter the student’s obtained marks here:\n”);
scanf(“%d”,&marks);
if(marks<=34)
printf(“Grade F”);
else if(marks<=45)
printf(“Grade E”);
else if(marks<=59)
printf(“Grade D”);
else if(marks<=69)
printf(“Grade C”);
else if(marks<=79)
printf(“Grade B”);
else if(marks<=89)
printf(“Grade A”);
else
printf(“Grade A+”);
getch();
}
Output
Advantages:
In computer programming, situations involving series of decisions one after the other, each decision or condition may involve expression of various data types such as float, integer, char and double. In these situations the if-else-if ladder is used.Disadvantages:
- The nested ifs are hard to understand and modify.
- As the depth of nesting increases, the readability of the program decreases.
- In situations involving series of decisions one after the other, each decision or condition may involve expressions which result in integer value. In these situations the usage of if-else-if ladder is not recommended. Instead of this statement, we go for switch statement.
Tidak ada komentar:
Posting Komentar