viernes, 30 de julio de 2010

Tipos de Condicionales

Dentro de un programa las condiciones para ejecutar cierto codigo es indispensable en casi cualquier programa "avanzado".
Para esto tenemos el sencillo if, su estructura es la siguiente:

if(condicion)
ejecuta el código....

Después de haber colocado la palabra "if" se coloca (obligatoriamente) entre paréntesis la cóndición a evaluar y en caso de que sea cierta, se ejecutará el codigo, desde una simple línea de código hasta un cuerpo entero.
Ejemplos:

a=10;
b=20;
if( a < b )
System.out.println("El valor de a es menor");

//Otro ejemplo con las mismas variables
if( a < b )
{
//Cuerpo del condicional
System.out.println("El valor de a es menor que el de b");
System.out.println("El valor de b es mayor que el de a");
}


Este "if" es la forma más simple y no está mal mencionar que no se coloca ";" después de la condición, de lo contrario la instrucción terminaría en ese momento y ejecutaría la linea de código condicionada.

En adición al If, existe otro complemento que nos permite ejecutar otras acciones en caso de que no se cumpla la condición. Para esto usamos la claúsula else

Ejemplo:
if( a < b )
código
else
código...

La instrucción de else también puede preceder a otro if, siempre y cuando este else pertenezca a un if.

Ejemplo:
if(a < b )
código...
else if(a==b)
código..
else if(a > b)
código...
Operador Ternario
En muchas ocasiones utilizar un if y un else nos pueden ocupar muchas líneas de código si lo que nos interesa es hacer algo más simple, por ejemplo asignar un valor a una variable.

Para este caso tenemos algo llamado el operador ternario.
Como su nombre lo indica en esta operacion intervienen tres elementos: La condición, el valor si la condición es verdadera y el valor si la condición es falsa.
Estructura:
variable= (condicion) ? valor1:valor2;

Lo que se hace es asignar un valor en la variable dependiendo de la condicion, si la condición es verdadera, tomará el primer valor (valor1); en caso contrario, tomará el valor precedido por los dos puntos (valor2). La condición es como siempre, encerrada entre paréntesis y colocando un signo de interrogación "?" para declarar que es una condición, los valores, los valores son separados con dos puntos ":" y se colocan después del signo de interrogación.

Ejemplo:
int n= (3 > 4) ? 5:4;

La operación Switch

El usar un if-else if... nos ayuda mucho en caso de que un condición no se cumpla, pero... supongamos que el usuario interactua con un programa que tiene diferentes opciones y se le pide un numero o letra para elegir alguna opción. sería complicado y tedioso hacer un else if parecido a este...
if(opcion==1)
código...
else if(opcion==2)
código...
else if...
....

Para esto contamos con la estructura switch, en esta, se colocan los posibles valores que el usuario puede teclear y si un valor no está, el switch se encarga de "llamarle la atención" al usuario.

Estructura:
switch(valor a evaluar)
{
//Cuerpo
case 1:código;break;
case 2: código;break;
case 3: código; break;
.
.
.
default: código;
}


Para empezar, en la sentencia switch se coloca entre paréntesis el valor que se desea evaluar, dependiendo del valor que tenga la variable a evaluar se activará el case correspondiente.
Un case es la opción que va a a realizar el switch en caso de que este tenga el valor evaluado. su sintaxis es simple
case 'valor': cuerpo del case...;break;

Nota: el case aceptará numeros enteros y caractéres.
Siempre que termina el cuerpo del case, se coloca la palabra reservada "break" (romper) y esta se encarga de salir del switch.

La expresión Default: es tratado como un case, este se ejecuta cuando el valor evaluado no coincidió con ninguno de los case anteriores, por regla el Default no es obligatorio, pero si se incluye dentro de switch deberá estar hasta abajo.


Estos son los Condicionales, espero les sirva, saludos.