La estructura condicional se utiliza para tomar decisiones, si la «expresión booleana» regresa un resultado verdadero (true) se ejecuta el un bloque de código, si no se omite y el flujo termina en la siguiente instrucción fuera de la estructura if.
Diagrama de flujo
La estructura condicional se utiliza para tomar decisiones, si la «expresión booleana» regresa un resultado verdadero (true) se ejecuta el un bloque de código, si no se omite y el flujo termina en la siguiente instrucción fuera de la estructura if.

Diagrama sintáctico
La condicional simple, omitiendo else, puede representarse con el siguiente diagrama sintáctico:

Se escribe la palabra reservada if y en medio de dos paréntesis la «expresión booleana» que se evaluará, después se coloca la sentencia (nula, simple o compuesta) que se ejecuta si el resultado es verdadero. En caso contrario esta sentencia se omite y continua con la siguiente sentencia después de la estructura.
Codificación en Java
if con una sentencia simple:
if( expresión_booleana )
sentencia; // si expresión_booleana == true
Sentencia puede ser compuesta o un bloque:
if( expresión_booleana ){// si expresión_booleana == true
sentencia;
sentencia;
sentencia;
}
La base y la altura de un triángulo deben ser números positivos, asignarle el valor de 1 si el número no es positivo.
if( (base <= 0) || (altura <=0) )
System.out.println( "Revise las entradas, deben ser positivas.”);
if( base <= 0 ) {
System.out.println( " La base debe ser un número positivo.”);
System.out.println( "A la base se asignará a un valor igual a 1.”);
base = 1;
}
if( altura <= 0 ) {
System.out.println( " La altura debe ser un número positivo. " );
System.out.println( " A la altura se asignará a un valor igual a 1. " );
altura = 1;
}
Si hay necesidad de hacer operaciones booleanas como el or || se recomienda agrupar con paréntesis para evita ambigüedades.
Observa que cuando se escribe una sentencia no se usan llaves de bloque, en el caso de requerir más de una sentencia como acción a realizar si se cumple la condición, debera iniciarse un bloque de instrucciones (sentencia compuesta, como en el segundo y tercer if) y se encierra entre las llaves de inicio { y fin }. esto puede ocurrir, incluso cuando sea una sóla instrucción (tercer if), por lo que el primer if podría quedar así, es cuestión de estilo:
if( (base <= 0) || (altura <= 0) ) {
System.out.println( "Revise las entradas, deben ser positivas.”);
}
Se desea crear un método setter para asignar el radio de un circulo, que sólo permita asignar valores positivos o cero. Implemente el método utilizando una estructura condicional simple (if):
public void setRadio( double value ) {
if( value<0 ) // si es negativo
value = -value; // se cambia el signo
this.radio = value; // siempre se asigna un valor positivo o cero.
}
Ejemplo de diagrama sintáctico:
Al utilizar un cajero automático, las personas tienen tres oportunidades para escribir su clave NIP para tener acceso a un retiro. Si se detectan tres intentos el cajero retiene la tarjeta (el método también avisa al usuario, espera a que lea el mensaje y reinicia el cajero a la pantalla de inicio).
Observa el ejemplo y completa los ejercicios.
Ejemplo
Al utilizar un cajero automático, las personas tienen tres oportunidades para escribir su clave NIP para tener acceso a un retiro. Si se detectan tres intentos el cajero retiene la tarjeta (el método también avisa al usuario, espera a que lea el mensaje y reinicia el cajero a la pantalla de inicio).
Diagrama de flujo
La estructura completa aparece en el siguiente diagrama:

if( intento==3 )
cajero.retenerTarjeta();// avisa al usuario, y regresa a la pantalla principal
Identificación de la estructura
Se trata de una condicional simple, ya que es una decisión con dos flujos que avanzan, y en el flujo de la sentencia verdadera se coloca debajo de la decisión.

if( intento==3 )
cajero.retenerTarjeta();
Decisión
La expresión booleana aparece dentro del rombo, se codifica dentro de los paréntesis de la condición.

if( intento==3 )
cajero.retenerTarjeta();
Sentencia

En este caso se trata de una sentencia única por lo que puede ponese como una sentencia sencilla:
if( intento==3 )
cajero.retenerTarjeta();
O bien, como una sentencia compuesta, agregando las llaves de un bloque (observa que no va punto y coma después de la llave de cierre).
if( intento==3 ) {
cajero.retenerTarjeta();
}
Ejercicio de arrastrar
Al implementar un método setter para cambiar el valor de la base de un triángulo, se decide implementar un algoritmo que se representa en un diagrama de flujo. Si se detecta que el parámetro value es negativo se cambia el signo.






Ejercicio de completar
Completa los espacios en blanco para que el siguiente diagrama de flujo corresponda con la codificación en Java.

Ejercicio de completar
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 centimetros así que en el método getter decidió hacer una corrección si se detecta que los datos vienen en centímetros:
Ejercicio de escritura
Escribe el código en Java que corresponde al siguiente diagrama de flujo.
Si el indice de masa corporal de una persona adulta no se ubica entre 20 y 25, el programa debe indicarle que consulte a su médico: