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

 采纳的回答

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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by