Saltar al contenido principal
Library homepage
 

Text Color

Text Size

 

Margin Size

 

Font Type

Enable Dyslexic Font
LibreTexts Español

5.2: Declaraciones If

( \newcommand{\kernel}{\mathrm{null}\,}\)

Una sentencia if se utiliza para hacer cosas diferentes dependiendo del valor de una variable. Un ejemplo estándar de esto es la versión por partes del valor absoluto. Matemáticamente, escribimos:

|x|={xx0,xx<0

Podríamos escribir esto como una función como

Login with LibreOne to run this code cell interactively.

If you have already signed in, please refresh the page.

function absValue(x::Number) 
  if x >= 0
	return x 
  else
    return -1*x
  end
end
 
function absValue(x::Number) 
  if x >= 0
	return x 
  else
    return -1*x
  end
end
 
 

Sólo un cheque, vamos a encontrar el valor absoluto de 3:

Login with LibreOne to run this code cell interactively.

If you have already signed in, please refresh the page.

absValue(3)
absValue(3)
 

Y comprueba el absoluto de -7 editando el bloque de código anterior.

Y si-entonces con más de 2 opciones

Es posible que necesite más de 2 opciones en una declaración if. Recordemos que los cuadrantes delxy plano comienzan en I para la parte superior derecha y aumentan a medida que atraviesas en sentido antihorario. Una función podría ser escrita:

Login with LibreOne to run this code cell interactively.

If you have already signed in, please refresh the page.

function quadrant(x::Real,y::Real) 
  if x > 0 && y > 0
    return "I"
  elseif x < 0 && y > 0
    return "II"
  elseif x < 0 && y < 0
    return "III"
  elseif x > 0 && y < 0
    return "IV" 
  else
    return "NONE" 
  end
end
function quadrant(x::Real,y::Real) 
  if x > 0 && y > 0
    return "I"
  elseif x < 0 && y > 0
    return "II"
  elseif x < 0 && y < 0
    return "III"
  elseif x > 0 && y < 0
    return "IV" 
  else
    return "NONE" 
  end
end
 

Observe que el formato es que comienzas con un if booleano y luego las otras verificaciones son ifelse y luego la final (si nada se sacifica) es solo otra cosa. Además, la razón por la que tenemos declaración else final es que técnicamente si estás en un eje, entonces no estás en un cuadrante, entonces esa es la razón de la última opción.

Ternario Si-entonces-Else

A menudo, una declaración if-else es bastante corta y se quiere un valor dependiendo de una condicion. El ejemplo de valor absoluto fue tal ejemplo. Hay lo que se llama una declaración ternaria if-else que tiene la forma:

1condition ? value_if_condition_is_true : value_if_condition_is_false

que devuelve valor_si_condicion_is_verdadero si la condición es verdadera de lo contrario se devuelve valor_si_condicion_is_false. El ejemplo de valor absoluto anterior se puede escribir como una sola línea:

Login with LibreOne to run this code cell interactively.

If you have already signed in, please refresh the page.

absVal2(x::Real)=(x>=0) ? x : -x
absVal2(x::Real)=(x>=0) ? x : -x
 

y una vez que practiques con esto, será fácil de leer y mucho más corto (1 línea versus 7). Tenga cuidado con la sintaxis de esto. Se requiere que las expresiones alrededor del? ser acolchado con espacios para analizar correctamente. El error es razonablemente claro si no lo escribes correctamente.

Alternativamente, puedes escribir esto como

Login with LibreOne to run this code cell interactively.

If you have already signed in, please refresh the page.

absVal3(x::Real)=ifelse(x>=0,x,-1*x)
absVal3(x::Real)=ifelse(x>=0,x,-1*x)
 

que es lo mismo que el ternario if-then-else con una sintaxis diferente.

Ejercicio

Escribe la función factorial recursiva de la Sección XXXX usando el ternario if-then-else.


This page titled 5.2: Declaraciones If is shared under a CC BY-NC-SA license and was authored, remixed, and/or curated by Peter Staab.

Support Center

How can we help?