Borrar filtros
Borrar filtros

Why does my if statement do the opposite?

3 visualizaciones (últimos 30 días)
Erwin Avendaño
Erwin Avendaño el 8 de Nov. de 2017
Comentada: David Goodmanson el 8 de Nov. de 2017
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

Respuesta aceptada

David Goodmanson
David Goodmanson el 8 de Nov. de 2017
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 comentarios
Erwin Avendaño
Erwin Avendaño el 8 de Nov. de 2017
Is these two conditions okay? if (qb==2 && qd==4)
David Goodmanson
David Goodmanson el 8 de Nov. de 2017
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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Testing Frameworks en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by