Using logical operators within if statement

14 visualizaciones (últimos 30 días)
Abhivyakti
Abhivyakti el 29 de Dic. de 2013
Comentada: Abhivyakti el 30 de Dic. de 2013
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! :)

Respuesta aceptada

Wayne King
Wayne King el 29 de Dic. de 2013
Editada: Wayne King el 29 de Dic. de 2013
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 comentarios
Image Analyst
Image Analyst el 29 de Dic. de 2013
Or
uiwait(warndlg('Please enter a value between 0 and 1'));
Abhivyakti
Abhivyakti el 30 de Dic. de 2013
Thankyou soo much :)

Iniciar sesión para comentar.

Más respuestas (2)

Amit
Amit el 29 de Dic. de 2013
Editada: Amit el 29 de Dic. de 2013
I think you need to use or (||) .. instead of &

Andrei Bobrov
Andrei Bobrov el 29 de Dic. de 2013
while true
um=input('um(Between 0 and 1) =');
if um<0 || um>1
disp('Enter a valid value');
else
break;
end
end

Categorías

Más información sobre Argument Definitions en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by