Así como hay operadores unarios, que solo requieren un operando: negativo, positivo, complemento y negación; operadores binarios, que requieren dos operandos: asignación, suma, resta, multiplicación, and, or, xor, corrimientos, etc. Java utiliza un operador que lleva tres operando: una expresión booleana, un valor si la expresión es verdadera, y una segunda expresión si el resultado es falso. Estos dos últimos valores deben ser del mismo tipo.
Recuerda que un operando puede ser un valor constante, el valor que contiene una variable, el resultado de una función (llamada a un método que regresa un valor) o una expresión más compleja. Por su parte, los operadores son aritméticos, lógicos y relacionales.
La estructura condicional se utiliza para tomar decisiones, es una estructura secuencial donde se toma una decisión para ejecutar entre dos alternativas de código que siempre se encuentran hacia adelante del flujo de ejecución del programa partiendo de la «condicional doble o compuesta»:
Diagrama de flujo
Si (if) la «expresión booleana» es true, se asignará a variable la «expresiónV», en caso contrario (else) y se asigna a variable la «expresiónF».
Es equivalente a “evalúa la «Expresión booleana», si es cierta asigna la «ExpresiónV» y si no asigna la «ExpresiónF»":
Diagrama sintáctico
1. Operador ternario.
Se evalúa una «expresión booleana», después se coloca el operador ternario ? seguido de la «expresiónV» que se asignará a una variable si el resultado es true, se separa con dos puntos : y se termina con una «expresiónF» que se asignaría a la variable si la expresión booleana resulta false.
2. Equivalencia con if-else
Si (if) la «expresión booleana» es true, se asignará a variable la «expresiónV», en caso contrario (else) y se asigna a variable la «expresiónF».
Codificación en Java
( expresión_booleana ? expresión_V : expresión_F ) // Como un valor
variable = ( expresión_booleana ? expresión_V : expresión_F ); // Asignación de variable
return ( expresión_booleana ? expresión_V : expresión_F ); // En una sentencia return
Si el sistema de unidades es METRICO, entonces el método regresa las siglas de “kilogramos” y si no, las de “libras”.
public String getUnidades() {
return (sistema = Sistema.METRICO) ? "Kg" : "Lb";
}
Si se desea asignar un valor positivo, tomarlo tal cual, sino cambiarle el signo:
base = (valor>=0) ? valor : -valor;
Si la calificación del alumno es mayor o igual a seis, se indica que está “aprobado” y si no está “reprobado”:
situacion = (calificacion>=6) ? "aprobado" : "reprobado";
Ejemplo de diagrama sintáctico:
Después de una partida muy intensa en un videojuego con dos participantes, cuando uno supera los 1000 puntos se declara un ganador. El ganador será quien tenga más puntos entre jugador1 y jugador2 y se almacenará en la variable ganador.
Al llegar a la estructura se evalúa una expresión booleana. Si se cumple la condición se procede a obtener el valor de la primera expresión (valor nulo, constante, variable o resultado de una expresión), en caso contrario se obtiene el valor generado por la segunda expresión.
Observa el ejemplo y completa los ejercicios.
Ejemplo
Se comparan los puntos de dos jugadores, si el primero tiene mas puntos se declara ganador, el caso contrario el segundo jugador es el ganador.
Asignación siempre positiva
Escribe los elementos para completar el diagrama de flujo de acuerdo con el bloque de código propuesto.
El siguiente diagrama revisa si la variable value es positivo entonces asignará este valor a base, en caso contrario se asignará cambiando el signo para la base siempre sea positiva después de la asignación:
Tipo de raíces
Completa los espacios en blanco para que el siguiente diagrama de flujo corresponda con la codificación en Java.
Se analiza el discriminante de una función de segundo grado, si el resultado es positivo las raices son reales y en caso contrario son raices complejas.
Estatura correcta
Completa los espacios en blanco para que el siguiente diagrama de flujo corresponda con la codificación en Java.
La estatura de una persona adulta debe estar en metros para poder calcular su indice de masa corporal. Se considera que normalmente las estaturas se ubican entre 1.20 y 2.20 metros, sin embargo, los capturistas suelen introducir la cantidad en centímetros así que en el método getter se decidió hacer una corrección si se detecta que los datos vienen en centímetros. En caso contrario asignar el valor proporcionado.
Cuidado de la salud
Escribe el código en Java que corresponde al siguiente diagrama de flujo:
Si el índice de masa corporal de una persona adulta no se ubica entre 20 y 25, el programa debe indicarle que consulte a su médico, en caso contrario, se sugiere que continue igual.