Does anyone know why my 2nd conditional statement is being ignored in this while loop?

Does anyone know why my second conditional statement "units(1) ~= 'n'" is being ignored when this code block is run? When the 2nd statement is removed the code runs without problems.
units = strings([1,4]);
torque_force_input = input('Input the unit of force for your initial torque\n','s');
units(1)= torque_force_input;
while units(1) ~= 'N'||units(1) ~= 'n'
disp('Please input a valid unit for the torque''s force.');
torque_force_input = input('Input a unit of force for your torque...\n','s');
units(1)= torque_force_input;
end

1 comentario

Given A~=B, can you think of a single value of X which will make this statement false?:
X~=A || X~=B

Iniciar sesión para comentar.

 Respuesta aceptada

Mehmed Saad
Mehmed Saad el 1 de Mayo de 2020
Editada: Mehmed Saad el 1 de Mayo de 2020
Suppose i enter Nm in command window then units will be
units
units =
1×4 string array
"Nm" "" "" ""
if you try the access the first letter
units(1)
ans =
"Nm"
you have the complete word the user enters and not a single character
to access first index
units{1}(1)
ans =
'N'
Now for the while loop, it keeps runing untill it receives false. so if user inputs N, so
'N' ~= 'N' || 'N' ~= 'n'
this will give you true and while loop will keep runing. you need a condition such that if any of them is true you get false and if both are false you get true

Más respuestas (0)

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Preguntada:

el 1 de Mayo de 2020

Comentada:

el 1 de Mayo de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by