Why does my if statement do the opposite?
2 次查看(过去 30 天)
显示 更早的评论
My if statement is asking that if h is negative, you must do that operation if not the other but do the opposite, do not I understand?
t=b4
e=b3
f=b2
h=e^2-4*t*f
if h==-h
qc=3
p=(h)*(-1)
x5=(sqrt(h))/(2*t);
x6=(-e/(2*t));
x7=(-sqrt(h))/(2*t);
x8=(-h/(2*t));
else
qd=4
x5=(-e+sqrt(h))/(2*t);
x6=(-e-sqrt(h))/(2*t);
end
采纳的回答
David Goodmanson
2017-11-8
Hi Erwin
The test h==-h is not a test for whether h is negative. This test is the same as 2*h==0 and always fails unless h = 0. Take a look at h<0, or h<=0 if you intend the condition to work for h=0 as well as negative h.
3 个评论
David Goodmanson
2017-11-8
They are the right syntax anyway, assuming that qb and qd are scalars. I tend to just use & in every situation because it always works and I don't think it has slowed things down for what I ordinarily do.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!