MATLAB: How to use an if statement with isempty(strfind()) as a condition

fprintfisemptystrfind

So I have this code where I need to calculate taxes over a salary entered by the subject. This subject may enter any Province marked by abbreviations such as 'ON', 'AB' and 'PE' and they are put in a cell array called B. I do not understand why even if i do not enter the said Province, MATLAB does execute this if statement and thus calculate taxes for every Province. Do you guys have a solution so the said code does not execute?
Note : This is only part of a code, the rest of it is pretty much a copy of this code only with the 'ON' changed for another Province string. There is also no error shown, the program only executes all of it and displays it.
EDIT : I did join my .m file, according to Star Strider's comment
W = isempty(strfind(B,'ON'));
if W
if Salary <= 36848
ON = 0.0605*Salary;
elseif 36848.01 <= Salary & Salary <= 73698
ON = 0.0915*Salary;
elseif Salaire > 73698
ON = 0.1116*Salary;
end
fprintf('%.2f en Ontario\n',ON)
end
Thank you all,
tl dr : MATLAB executes the program even if the cell does not contain what it has to find to execute.

Best Answer

If you don’t enter a province, the isempty condition will be true. Using the logical negation (~) in the ‘W’ assignment would seem to be the correct logic:
B = {'ON', 'AB' 'PE'};
W = ~isempty(strfind(B,'ON'));
if W
fprintf(1, '\nCalculate Ontario taxes\n')
end