Trying to calculate tax due based on varying reported taxable incomes. All input values return my if statement condition ($0).
1 次查看(过去 30 天)
显示 更早的评论
t=input('Enter total income: ');
% Calculate Tax due
if (0<t<=6000)
due= 0
elseif (6000<t<=34000)
due= 0.15*(t-6000)
elseif (34000<t<=80000)
due= 4200+0.30*(t-34000)
elseif (80000<t<=180000)
due= 18000+0.40*(t-80000)
elseif (180000<t)
due= 58000+0.45*(t-180000)
else
disp('invalid input')
end
0 个评论
采纳的回答
Walter Roberson
2018-3-29
80000<t<=180000 means ((80000<t)<=180000) . The first part, (80000<t) returns 0 (false) or 1 (true), and the second part compares that 0 or 1 to 180000, which is always satisfied.
2 个评论
Steven Lord
2018-3-30
And in fact if you write your code in MATLAB Editor in release R2017b or later (at least that's as far back as I checked) Code Analyzer will warn you that (a < x < b) and similar for the other relational operators may not do what you think it does and offer guidance on what you should do instead.
(80000 < t) & (t <= 180000)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Software Development Tools 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!