# nested if else statements

144 views (last 30 days)

Show older comments

Can someone write an example of a nested if else statement? matlab keeps underlining the 'else' when I try to write a nested 'if else' statement telling me the syntax is wrong.

Also, where do I put the 'end' for each of the 'if else' statements?

##### 6 Comments

BISHMITA SHARMA
on 21 Aug 2017

Jan
on 21 Aug 2017

### Accepted Answer

Evan
on 25 Jul 2013

Edited: Evan
on 25 Jul 2013

x = 5.5

if x > 6

disp('x is greater than 6')

elseif x >= 3 && x <= 6

if mod(x,1) ~= 0

disp('x is a non-integer value between 3 and 6')

else

disp('x is a integer value between 3 and 6')

end

elseif x < 3

disp('x is less than 6')

end

The above code checks to see what range x falls in, then enters an if/else statement that determines whether it is evenly divisible by one. If not, this means x is not an integer value and the corresponding text is displayed. Here, you could get rid of the nesting if you liked by using statements like elseif x >=3 && x <= 6 && mod(x,1) ~= 0, but eventually it would get messy and difficult to read.

%grade = [];

grade = 75;

if ~isempty(grade)

if grade > 70

disp('Assignment passed!')

else

disp('Assignment failed!')

end

else

disp('No grade found for this assignment!')

end

Here's another example in which we have to use the nesting in order to check for cases where a blank grade was given.

##### 3 Comments

Evan
on 25 Jul 2013

### More Answers (4)

Nathan Crosty
on 25 Jul 2013

Edited: Nathan Crosty
on 25 Jul 2013

this = 222;

that = 111;

if this == 333

disp('this')

elseif that == 444

disp('that')

else

this = 555;

if this == 222

disp('this')

else

disp('that')

end

end

##### 1 Comment

Evan
on 25 Jul 2013

Edited: Evan
on 25 Jul 2013

Sohrab Abedini
on 27 Dec 2015

Edited: Sohrab Abedini
on 27 Dec 2015

The examples were great. However, I could not still find a solution to this problem of mine: I don't know how to write it in matlab code->

if n=4 then -> c=2, d=3 or c=3 , d=2.

I wondering if writing "or" is acceptable in result statement. it seems wrong but I have to do it somehow. --- The actual problem is changing a 2nd rank Tensor to a 4th rank tensor through Voigt mapping. which is quite easy vise versa and so difficult in this way. I might be able to solve it if I understand to write "or" or sth like that in if statement.

##### 0 Comments

Nava Subedi
on 26 Nov 2016

Edited: Stephen23
on 26 Nov 2016

Can someone help me to what is wrong with my code:

function [l, m, n] = sort3([a b c])

if a>=b && a>=c

if b>=c

l = c;

elseif b<=c

l = b;

else l = a;

end

elseif b>=a && b>=c

if a>=c

m = c;

elseif a<=c

m = a;

else m = b;

end

else c>=a && c>=b

if a>=b

n = b;

elseif a<=b

n = a;

else n = c;

end

end

I am trying to write nested if statement.

##### 1 Comment

Stephen23
on 26 Nov 2016

Edited: Stephen23
on 26 Nov 2016

This is not MATLAB syntax:

function [l, m, n] = sort3([a b c])

It looks like you are trying to write Python, or something similar. The correct MATLAB syntax is shown in the online beginners tutorials, the documentation, and lots of online forums:

function [l, m, n] = sort3(a, b, c)

Anyone can read the MATLAB documentation for free. It explains how MATLAB works:

Jobin Geevarghese Thampi
on 30 Apr 2022

what is the wrong with this code?. It is supposed to give 22

##### 2 Comments

Walter Roberson
on 30 Apr 2022

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!