katanovich
katanovich

Reputation: 15

If statements in for loop don't work correctly - MATLAB

for h=0:39
if h<10
    disp('primi 10')
elseif 10<=h<20
    disp('primi 20')        
elseif 20<=h<30
    disp('primi 30')
elseif 30<=h<40
    disp('primi 40')
end
end

The simple code above is the one that I've try to run in MATLAB, but as output I get something strange like:

primi 10
primi 10
primi 10
primi 10
primi 10
%first 10 senteces are corrected
...
primi 10
primi 20
primi 20
primi 20
.....
%until the end of the loop

So it seems that matlab doesn't exit from the

elseif 10<=h<20 disp('primi 20')

statement. In fact the first 20 iterations are corrected, while the others no. I really don't know how to correct it. Any suggestions?

Upvotes: 1

Views: 60

Answers (1)

petrucci9000
petrucci9000

Reputation: 91

You should combine the “singular” conditions with logical operators, such as “elseif 10<=h && h<20”. In your case, the compiler saw 10<=h first and resolved it as True and then proceeded to compare True<20, which is True as well, so everything was printed as 20.

Upvotes: 3

Related Questions