Expresiones y Control de Flujo
Expresiones y Control de Flujo
Expresiones y Control de Flujo
Veremos cómo es que temas como las expresiones (aritméticas y lógicas), las sentencias de decisión y de
repetición encajan en el desarrollo de aplicaciones orientadas a objetos. Comencemos.
Expresiones
Dando un repaso rápido, recordamos que la sintaxis para declarar variables en Java nos dice que antes del
nombre de la variable es necesario (aunque si no se hace toma el valor por default) poner un modificador de
acceso:
Estos modificadores de acceso de variables indican en qué parte de otras clases se pueden accesar a dichas
propiedades.
Utilizando el ejemplo anterior, si estamos declarando una clase llamada Paciente con las propiedades arriba
mencionadas:
1
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
Si compilamos el código anterior, podemos ver que todo compila y se ejecuta sin problemas, y en la consola
nos muestra la edad del paciente, ahora, si quisiéramos hacer algo como:
El código también compila y ejecuta sin problemas, el modificador de acceso protected permite a la variable
ser visible desde el mismo package en la cual fue declarada.
2
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
Un error en la compilación nos niega el acceso a la variable, dado que el modificador de la misma es private,
es decir, sólo visible en esa clase. Para solucionar este problema y poder acceder al valor de la variable,
podemos crear un accesor que quedaría en la clase:
Estas medidas de seguridad permiten al código volverse modular dado que para modificar o leer el valor de
las variables podemos definir “contratos” para que las clases no tengan dependencias cruzadas.
Operaciones
- Los operadores aritméticos son aquellos símbolos que permiten realizar operaciones aritméticas y son:
+ Suma
- Resta
/ División
* Multiplicación
% Módulo
Estos operadores se utilizan de dos en dos (a + b) y el resultado de su evaluación es un número que puede
ser float o int. Para más información visita:
http://www.programacionfacil.com/java/operadores_aritmeticos
3
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
- Los operadores lógicos son aquellos que evalúan expresiones cuyo resultado es un valor tipo bool. Es decir,
true o false. Los más comunes los podemos ver en la tabla:
[2]
Estos operadores los estaremos utilizando para las sentencias de decisión en casos como:
if(esHombre && esMayorDeEdad) -> El resultado de la evaluación será false (true && false) -> false.
[3]
Por último, están los operadores a nivel de bits. No profundizaremos en su uso dado que su estudio no es tan
relevante para la materia, visita el siguiente vínculo para saber más:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_de_bits
4
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
Sentencias de Decisión
Una vez vistos los operadores, podemos ver aquellas instrucciones que nos permiten cambiar el flujo de
ejecución de nuestros programas.
if
La sentencia if evalúa el resultado de la expresión (o expresiones) que están dentro de los paréntesis, en
caso de que la expresión dé como resultado el valor true se avaluará lo que esté dentro del siguiente bloque
de instrucciones.
En caso de que la expresión dentro del if diera como resultado un false, lo que está dentro del bloque no se
ejecutaría y el programa seguiría.
Else
Partiendo del ejemplo anterior, en dado caso de que la instrucción diera false, podríamos decirle al programa
que ejecutara otro bloque sólo y sólo si la primera evaluación da como resultado false. Para eso sirve el else,
que va a acompañado siempre después del if
5
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
if(expresion_1)
{
//Si la expresion_1 resulta en TRUE
}
else if(expresion_2)
{
//Si la expresion_1 fue FALSE y la expresion_2 fue TRUE
}
else
{
//Si la expresion_1 y la expresion_2 fueron FALSE
}
Estas evaluaciones pueden ser utilizadas tanto dentro de las clases como fuera de las mismas, utilizando las
propiedades de los objetos.
Switch
Otra sentencia de decisión es la llamada switch, la cual actúa como una estructura if-else, pero con casos
que deben estar definidos al momento de la compilación, su estructura es de la siguiente manera:
//Donde variableAEvaluar debe ser declarada como un int, o poder ser convertida a int
(char).
switch(variableAEvaular)
{
case 0:
System.out.println(“El valor fue 0”);
break;
case 1:
System.out.println(“El valor fue 1”);
break;
default:
System.out.println(“El valor no cayo en ningun case, el default lo atrapo”);
break;
}
6
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
Sentencias de Repetición
Hasta ahora, nuestros programas han sido ejecutados instrucción por instrucción para después terminar.
Ahora vamos a ver cómo lograr que nuestros programas sigan una ejecución cíclica hasta que se cumpla
cierta condición que termine dicho ciclo. En la siguiente unidad, cuando veamos Arrays, encontraremos que el
uso de ciclos y una estructura de datos nos permitirán manipular múltiples objetos de formas más rápidas y
ordenadas.
Ciclo For.
El primer ciclo que vamos a ver es el for, el cual tiene la siguiente estructura:
Un ejemplo es:
Este ciclo, se ejecutará 11 veces y en cada iteración del ciclo imprimirá en la consola un mensaje con la
cuenta que lleva.
Recuerda que el operador i++, es equivalente a decir que el valor de i, aumente su valor en 1.
7
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
El resultado es:
While
En el ciclo for conocemos la condición de inicio y de terminación, además, podemos inferir el número de
iteraciones que tendrá nuestro ciclo. Sin embargo, en varias ocasiones necesitarás ejecutar instrucciones por
un número indeterminado de iteraciones, por lo cual el ciclo while es una buena opción.
while(condicion_a_evaluar)
{
//codigo a ejecutar
}
Lo que nos dice la sintaxis es que mientras la condicion_a_evaluar no regrese TRUE, se seguirá ejecutando el
ciclo.
Un ejemplo de su uso, podría ser un programa que pregunte la contraseña a un usuario, hasta que no la
ingrese correctamente, el ciclo se quedará ahí sin poder proceder a la siguiente parte del programa.
Do-While
Hay una variante del ciclo while y es la del do-while, la estructura es:
do
{
//codigo a ejecutar
}while(condicion_a_evaluar)
8
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.
En esencia, ambos ciclos son iguales, la única diferencia es que por la estructura del while, si la condición es
falsa la primera vez, nunca se ejecutará el código del bloque, sin embargo, en el do-while, siempre se
ejecutará por lo menos una vez el bloque. La evaluación de la condición en el do-while se hace al terminar la
iteración.
Referencias
[1] Modificadores de acceso: http://scjp-sun.blogspot.mx/2009/07/declaraciones-y-contro-de-acceso.html
[2] Operadores lógicos en JAVA:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=466:operadores-
logicos-en-java-igual-distinto-and-or-not-mayor-menor-cortocircuito-cu00634b&catid=68:curso-aprender-
programacion-java-desde-cero&Itemid=188
[3] Tabla de verdad para AND, OR y NOT:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_relacionales
[4] Ciclo for
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html