How to use not equal to '~=' operator in if statement?
Show older comments
My code works fine with '==' but not with '~='.I expect it not to display 'error' if user enters A or B
x=input('input x','s')
if(x~='A')||(x~='B')
disp('error');
end
Accepted Answer
More Answers (2)
Jan
on 21 Feb 2017
Remember, that the negation of
(x=='A') || (x=='B')
is:
~((x == 'A') || (x == 'B')) ==>
~(x == 'A') && ~(x == 'B') ==>
(x ~= 'A') && (x ~= 'B')
2 Comments
Zhuoying Lin
on 28 Nov 2017
Edited: Walter Roberson
on 28 Nov 2017
Hi I have a similar question:
when I type:
if (x ~= 'a') && (x ~= 'p') && (x ~= 'T')
fprintf('ERROR:You entered incorrect choice.')
end
but it also shows that:
Operands to the || and && operators must be convertible to
logical scalar values.
Error in term (line 4)
if (x ~= 'a') && (x ~= 'p') && (x ~= 'T')
Walter Roberson
on 28 Nov 2017
if any((x ~= 'a') & (x ~= 'p') & (x ~= 'T'))
fprintf('ERROR:You entered incorrect choice.')
end
or
if ~all( ismember(x, {'a', 'p', 'T'}) )
fprintf('ERROR:You entered incorrect choice.')
end
If user enters A, then x~=B is true, so (x~='A')||(x~='B') is true, thus "error" is displayed.
Same for B.
Best wishes
Torsten.
Categories
Find more on Whos in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!