5.2: Declaraciones If
- Page ID
- 113352
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
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| = \begin{cases} x & x\geq 0, \\ -x & x<0\end{cases}\]
Podríamos escribir esto como una función como
Sólo un cheque, vamos a encontrar el valor absoluto de 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 del\(xy\) 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:
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:
condition ? 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:
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
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.