viernes, 1 de noviembre de 2013

COMO FUNCIONAN LOS CONDICIONALES

Llamamos condicional cuando queremos que el programa “tome una decisión” sobre un asunto.

La computadora puede imprimir un mensaje diferente, según mi edad.¿Qué son los condicionales?
Queremos hacer un programa que primero me
pregunte mi edad e imprima “eres mayor de 
edad” si soy mayor a dieciocho inclusive.



int edad;
(…)
if(edad >= 18)
{
System.out.println(“Eres mayor de edad”);
}


El programa anterior imprimirá “eres mayor de edad” si la variable edad vale 18 o si vale más de dieciocho.
Si ingreso una edad menor, no hace nada.
¿Qué tengo que hacer para que imprima “eres menor de edad”, si lo soy? ¿Y para que me diga que tengo dieciocho?.

En este otro ejemplo se hace así.
if(edad == 18)
System.out.println(“Tienes dieciocho”);
if(edad >= 18)
System.out.println(“Eres mayor de edad”);
if(edad < 18)
System.out.println(“Eres menor de edad”);

– No fue necesario poner llaves. Esto se puede si sólo voy a poner una línea dentro del “if”.
– Si cae dieciocho, entonces hay dos mensajes.

La hermana de la sentencia “if” es la sentencia “else”. En inglés quiere decir otra cosa. En nuestro contexto significa si no.
O sea, para decirle a la computadora “si la persona tiene veinte años entonces imprime…pero si no, entonces imprime esta otra cosa” se hace así:

if(edad == 20)
System.out.println(“Somos de la misma edad.”);
else
System.out.println(“Ahh!, no tienes mi edad.”);

• Con la sentencia “if”podemos tomar una decisión.

• Con la sentencia “else” hacemos algo si no ocurre el “if”

• Con el “else if” podemos hacer que la computadora elija uno entre varios caminos.

Para comparar cadenas de texto se hace así:
If(cadena1.equals(cadena2))
{
System.out.println(“Las cadenas son iguales”);
}
• No debes usar el operador de igual (==) para cadenas, porque JAVA 
considerará que son diferentes aunque valgan igual.
• También existe “equalsIgnoreCase” que compara sin importar mayúsculas/minúsculas.
Con los operadores lógicos se pueden hacer 
condiciones un poco más complejas como: si tengo 10 ó 20 años, si me llamo “Rodrigo” y soy de “Guatemala”, etc.
if(edad==10 || edad==20)
System.out.println
(“A tu edad me enfermé gravemente”);
• Otras cosas sobre los operadores lógicos:
– A veces habrá que usar paréntesis para que la condición haga sentido.
– A propósito de las comparaciones de cadenas, para hacer una condición de cadenas “distintas” se usa el operador lógico “(no) que es (||)” junto con el “equals”.
– Se pueden mezclar con operadores lógicos una condición de números con una de cadenas.

¿Qué son condicionales anidados?

• Aprendimos a tomar uncamino entre varios posibles. ¿Y si después de eso tenemos que volver a elegir?
• ¿Y si tenemos que tomar muchas decisiones para llegar a la respuesta final?.
Imagina que nuestro programa ahora 
pregunta nuestro nombre, nuestra edad, 
nuestro NIT si somos mayores, nos 
pregunta si estudiamos o no, en qué colegio 
estudiamos, etc. ¿Cómo lo harías?
• El ejemplo está en tu bandeja de correo.

La Sentencia switch

La sentencia switch sirve para ahorrar tiempo y código.

int mes=8;

switch(mes)

{ case 1: System.out.print(“enero”); break;
 case 2: System.out.print(“febrero”); break;
 case 3: System.out.print(“marzo”); break;
 (...)
 default: System.out.print(“Mes inválido”);
 break;
}
• La sentencia switch tiene una función muy parecida a la que tendrían muchos if / else if / else.
• La sentencia switch sólo trabaja con variables de tipo byte, short, char e int.
• La función que cumple un default es la misma que un else.
• Si omitimos la sentencia break, podemos 
combinar los casos.
switch (month) {
 case 1:
 case 3:
 (...)
 case 10:
 case 12:
 numDias = 31;
 break;
 case 4:
 case 6:
 case 9:
 case 11:
 numDias = 30; 
break;
 case 2:
 numDias = 28; 
break;
 }



No hay comentarios:

Publicar un comentario