Using logical operators within if statement

This probably is a very silly thing, but somehow I am not getting it right.
I need to input the value of a variable'um' from user. The value should lie within 0<um<1 to be acceptable, else has to be rejected. This is my program :
um=input('um(Between 0 and 1) =');
if um<0 & um>1
um=0;
disp('Enter a valid value');
end
If I try the two conditional statements i.e um<0 and um>1 individually , it works. However, using both the statements together, is accepting values of um greater than 1 as well.
I have tried all possible 'if' statements here, i.e :
if um<0 & um>1
if (um<0) & (um>1)
if (um<0) && (um>1)
if (um<0 && um>1)
Nothing seems to work out. I have done thins in C++ numerous times, but there is some problem with my syntax in MATLAB I guess.
Thanks in advance! :)

 Akzeptierte Antwort

Wayne King
Wayne King am 29 Dez. 2013
Bearbeitet: Wayne King am 29 Dez. 2013

1 Stimme

You don't want an &, you want an or |
um=input('um(Between 0 and 1) =');
if (um<0 || um>1)
disp('Enter a valid value');
end
How can something be less than 0 and greater than 1? That should be the same in C++.

2 Kommentare

Or
uiwait(warndlg('Please enter a value between 0 and 1'));
Abhivyakti
Abhivyakti am 30 Dez. 2013
Thankyou soo much :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Amit
Amit am 29 Dez. 2013
Bearbeitet: Amit am 29 Dez. 2013

1 Stimme

I think you need to use or (||) .. instead of &
Andrei Bobrov
Andrei Bobrov am 29 Dez. 2013

1 Stimme

while true
um=input('um(Between 0 and 1) =');
if um<0 || um>1
disp('Enter a valid value');
else
break;
end
end

Kategorien

Mehr zu MATLAB Mobile Fundamentals finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by