Else if
statement works in the same way as if else works. But only difference is, more expressions can be used in else if statement
.
Before you move on to this lesson, be sure to go through the previous lessons. Check out other lessons.
Need of ELSE IF statement
If you have learned through my previous lesson, then you know that we have used if condition till now, only to check one condition. With the help of if else statement, we only get to choose to execute anyone from the two conditions — one condition of if and another of else.
But what if we need to check for more conditions (or expressions), that could be done using else if statement.
Here is an example to think about the necessity of else if statement.
Suppose, we have a variable named age
and a certain value stored in it. And we want to check that value with many other values, not only to one value as we did in if else statement. Let’s say, if the age
value is 10
, we want to say “you are a kid
“, age
value 20
, say “you are a youth
” and soon.
In such case, else if statement works as per our desire.
Else IF statement syntax
Here is a syntax for if..else if statement:
if (expression) then
code........
else if (expression) then
code..........
else if (expression) then
code........
..
..
..
else
code...........
end if
Now we can evaluate many expressions, using in else if and execute statements based on the condition.
Whichever expressions give .true.
value, statements inside that else if, will execute. If none of the expressions give .true.
value, then else expression executes.
Else if statement examples
program example
implicit none
integer :: age = 20
if (age == 10) then
print*,"you are still a kid."
else if (age == 20) then
print*, "you are youth now."
else if (age == 30) then
print*, "it's time to get married."
else if (age == 40) then
print*, "Spend quality time with your children."
else
print*, "Just do what you wanna do! "
end if
end program
Guess the output and see the answer.
The output is:
you are youth now.
So we give age == 20
then our program check the condition of age
in each expression turn by turn. The first expression age == 10
gives .false.
value. So it goes to the second expression and checks the expression age == 20
. Yes, age == 20
gives .true.
value. hence, the statement inside this else if is executed.]
Labeling if statement
FORTRAN also has a feature of labeling if we have many if statements
inside our program.
Labeling is done using following syntax:
name: if (expression) then
code goes here.........
end if name
This labeling might help us, only if we have many if statements and we give the best labeling name to if statement.
For example:
program label
implicit none
first_if: if (4==4) then
print*, "labeling is good when there are many if."
end if first_if
second_if: if ( 5 <= 8) then
print*, "Better to give a relevant name for the label while using such format."
end if second_if
end program
The output is:
labeling is good when there are many if.
Better to give a relevant name for the label while using such format.
If statement shorthand way
There is one good way of writing simple if statement
. When single statement is inside if statement
then, we can use the shorthand way. I will show you two examples, both works the same.
Regular way of writing if statement:
program regular
implicit none
integer :: x = 4
if (x==4) then
print*, "The value of x is 4."
end if
end program
Shorthand way of writing:
program shorthandWAY
implicit none
integer :: x = 4
if (x==4) print*, "The value of x is 4."
end program
The output is same:
The value of x is 4.
Nested if statement
Nested means: one inside the same one. The term nested in if statement means: we can put many if statement inside the if statement.
Nested if statement gives more control over the decision.
Here is the syntax to write nested if.
if (expression) then
if (expression) then ! nested if (if inside if)
code....
else
code....
end if
else
code.......
end if
There can be many formats of nested if as including separate if statement inside anywhere of one if statement is possible.
Here is a simple example to describe a use of nested code.
Suppose we want to execute a certain statements only if two expressions are satisfied. Ok, we have a number 40
and if and only if it passes two expressions given by nested if passes, then certain statement can execute.
Lets see the code for now:
program nestedIF
implicit none
integer :: number = 40
if (number < 50) then
if (number > 30) then
print*, "number is between 30 and 50."
else
print*, "number is less than 50 but not greater than 30."
end if
else
print*, "number is not less than 50."
end if
end program
Try to figure out the code. I have used line indentation for better understanding.
The output is:
number is between 30 and 50.
Lets see line by line.
number == 40
is given. The program always goes line by line. So, it first goes to the first if statement. It checks the expressions inside it. The expression number < 50
gives .true.
value. So, we can cancel the else
part of that first if statement
.
else
print*, “number is not less than 50.”
end if
Then the program sees nested if expression
. The expression number > 30
gives .true.
value. So we can exclude else
of nested if
from our list.
else
print*, “number is less than 50 but not greater than 30.”
end if
else
print*, “number is not less than 50.”
end if
end program
Hence the expression inside of two’s if
are executed.
Enjoy coding in FORTRAN.
Watch video tutorial on Else if statement for better understanding.