Bienvenidos sean a este post, hoy hablaremos sobre los metodos disponibles para crear condiciones y darle la posibilidad de raciocinio a nuestros programas para ello utilizaremos dos tipos, el condicional if y el condicional switch, cada uno tiene sus ventajas y sus contras pasemos a ver primero el condicional if
if
Es uno de los mas utilizados en todos los lenguajes de programacion, en el caso de Java se lo utiliza de la siguiente forma:
if (condicion)
{
... instrucciones ...
}
Como pueden ver es bien simple, si (if) la condicion se cumple (es decir verdadera) procedera a ejecutar el bloque de insrucciones en la misma.
Este condicional tiene la posibilidad de tener una opcion llamada else donde en caso de no cumplirse la condicion ejecutara las instrucciones del bloque de else, la sintaxis es asi:
if (condicion)
{
... instrucciones ...
}
else
{
... instrucciones ...
}
Ahora tambien tenemos la posibilidad de anidar condiciones, es decir una condicion dentro de otra condicion o una nueva condicion por medio de else if, si bien no es una buena practica bajo ciertas condiciones puede ser utilizado y lo mas saludable seria tratar de no anidar muchas condiciones porque el programa quedaria poco practico para la revision de nuestro programa, la sintaxis es asi:
if (condicion)
{
... instrucciones ...
}
else if (condicion)
{
... instrucciones ...
}
else if (condicion)
{
... istrucciones ...
} else {
... instrucciones ...
}
Como pueden ver, podriamos chequear una condicion sino se cumple la chequea luego y si no se vuelve a cumplir mirara la siguiente condicion, esto se puede hacer mas veces y lo recomendable es agregar un else para en caso de fallar el resto muestre un mensaje de salida, como pueden ver para este tipo de anidadas se utiliza el condicional siguiente pero en ciertas circunstancias pueden necesitarlo pero su uso es relativo justamente por lo poco practico. Veamo un ejemplo para entender este caso:
public class Prueba
{
public static void main(String args[])
{
int x = 30;
int y = 40;
if (x < 30 && y >40)
{
System.out.println("Estan en la primera condicion");
}
else if (x > 30 && y < 40)
{
System.out.println("Estan en la segunda condicion");
}
else
{
System.out.println("No se cumplio ninguna condicion");
}
}
}
En este caso creamos dos variables, x e y, y le asignamos dos valores, luego creamos una condicion donde chequea si x e y son menor o mayor a ciertos valores, en caso de ser verdadero muestra un mensaje, en caso de ser falso procede a la segunda condicion donde en caso de ser verdadero muestra un mensaje y en caso de ser falso cae en un else donde muestra un mensaje por no cumplirse ninguna de las condiciones. La salida de nuestro programa es:
tinchicus@dbn001vrt:~/java/program$ java Prueba
No se cumplio ninguna condicion
tinchicus@dbn001vrt:~/java/program$
Ahora hagamos una simple variacion modifiquen los valores de x e y por:
int x = 40;
int y = 30;
Vuelvan a compilar el programa y probemos el mismo, obtendremos una salida similar a esta:
tinchicus@dbn001vrt:~/java/program$ java Prueba
Estan en la segunda condicion
tinchicus@dbn001vrt:~/java/program$
Como pueden ver ahora al cumplirse la segunda condicion devolvio ese mensaje ignorando el resto, como pueden ver no es una mala opcion pero en este caso por tratarse de algo simple imaginen tener seis condiciones y alguna genere un error o se comporte de manera extraña, para evitar esto o tener un sin fin de condiciones if se utiliza el siguiente condicional
switch
Este tipo de condicional chequea una variable en particular y despues por medio de condiciones de valores ejecuta un bloque, veamos su sintaxis:
switch (variable)
{
case 1:
… instrucciones …
break;
case 2:
… instrucciones …
break;
case 3:
… instrucciones …
break;
case n:
… instrucciones …
break;
default:
… instrucciones …
break;
}
La sintaxis es simple primero decimos cual va a ser la variable a chequear, luego por medio de la palabra case le ponemos un valor x, si coincide con el valor de la variable procede a ejecutar las instrucciones y luego por el break sale del switch, suponiendo que el primer valor no sea, pasa al siguiente case con otro valor, igual al anterior si coincide ejecuta sus intrucciones y sale con el break, si no hay coincidencia pasa al siguiente case y asi sucesivamente, puede ver la cantidad de cases necesarios no tiene limite, por eso puse a la n, y en caso de no coincidir con ninguno tenemos un default, donde ejecutara sus instrucciones y saldra del programa, este debe ser siempre la ultima condicion porque es la encargada de devolvernos una notificacion (aunque sea de error) para nuestro switch. Veamos un ejemplo para poder estudiarlo mejor:
public class llave
{
public static void main(String args[])
{
int x = 30;
String texto;
switch(x)
{
case 10:
texto = "X tiene un valor de 10";
break;
case 20:
texto = "X tiene un valor de 20";
break;
case (2 * 15):
texto = "X tiene un valor de 30";
break;
default:
texto = "X no coincide con ningun case";
break;
}
System.out.println(texto);
}
}
En este caso vamos a tener una clase de prueba, aca crearemos una variable de tipo entera llamada x y otra de tipo String llamada texto, a x le asignamos un valor de 30 luego pasaremos por medio de un switch() el valor almacenado en x a compararlos con los cases, en los cases veremos si coincide con x y en caso afirmativo asignaremos un valor a la variable texto, en cada case sera distinto, vean como nos manejamos con valores pero en el tercer case vemos que utilizamos una multiplicacion para obtener el valor 30 (2 x 15) y luego el default por si no coincide con ninguno de los anteriores. Si compilamos y probamos nuestra app obtendremos esta salida:
tinchicus@dbn001vrt:~/java/program$ java llave
X tiene un valor de 30
tinchicus@dbn001vrt:~/java/program$
Como pueden ver como el valor del case coincide con x considera que es la correcta, y en este caso pueden ver no solamente es necesario comparar el valor sino tambien por una expresion arimetica, lo cual nos da una gran opcion para determinadas condiciones necesarias en nuestros programas. Este metodo es un poco mejor que estar anidando muchos if para determinar acciones sobre el valor de una variable y pasemos a ver el ultimo condicional
Operador condicional
Este tipo de operador lo hemos visto en el post anterior pero aca vemos que su equivalencia podria ser al condicional if…else… porque tenemos una expresion si es verdadera devuelve un valor y de los contrario devuelve otro, la sintaxis es asi:
expresion ? valor1 : valor2
Si desean ver un ejemplo les recomiendo el post anterior. En resumen, hoy hemos visto como darle a nuestro programas la posibilidad de razonar, de poder evaluar opciones y tomar decisiones, como trabaja el condicional if, como podemos anidar, que es y como se usa el switch, y por ultimo el operador condicional. Espero les haya gustado, sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.


Tambien podes donar
Es para mantenimiento del sitio, gracias!
$1.50