How to use not equal to '~=' operator in if statement?
1.769 views (last 30 days)
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
0 Comments
Accepted Answer
John D'Errico
on 21 Feb 2017
Edited:John D'Errico
on 21 Feb 2017
A problem of elementary logic?
You want an error to return only if A is not in the set {'A','B'}. So a call to ismember might be a good alternative.
Regardless, given the approach you have followed, if x is equal to 'A', then the second half of the clause will be true, even though the first part of the clause is false. And the logical statement
假| | true
is TRUE.
You are asking for a result that is only true when BOTH parts of the clause are true. Use a logical and, NOT a logical or.
if(x~='A') && (x~='B')
0 Comments
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
Walter Roberson
on 28 Nov 2017
ifany((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
See Also
Categories
下载188bet金宝搏
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!