Sie sind auf Seite 1von 9

Unidad 4.

Expresiones y control de flujo


Programación orientada a objetos.

4. Expresiones y control de flujo1

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:

public int edad; // Se puede acceder desde cualquier otra clase


protected String apellidoPaterno; // Acceso desde esta clase y sus derivadas
private int numeroSeguroSocial; // Solo acceso desde esta clase

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:

Ahora con una clase llamada Consultorio:

1 Documento elaborado por el Ing. Arturo Nereu Núñez.

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.

Por último, si intentamos:

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:

Podemos ahora desde otra clase acceder al valor:

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.

Puedes ver más sobre los modificadores en: http://scjp-sun.blogspot.mx/2009/07/declaraciones-y-contro-de-


acceso.html

Operaciones

Antes de comenzar a utilizar las sentencias de decisión, repasemos los operadores:

- 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:

Boolean esHombre = true;


Boolean esMayorDeEdad = false;

if(esHombre && esMayorDeEdad) -> El resultado de la evaluación será false (true && false) -> false.

La tabla de verdad para los operadores AND, OR y NOT es la siguiente:

[3]

Para más información de los operadores relacionales visita:


http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_relacionales

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.

int edad = 18;


int categoria = 2;
if(edad >= 18 && categoria == 2 )
{
// Se evalúa la expresión a TRUE, entonces se ejecuta el código
}

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

int edad = 18;


int categoria = 3;
if(edad >= 18 && categoria == 2 )
{
// Se evalúa la expresión a TRUE, entonces se ejecuta este código
}
else
{
//La evaluación da FALSE, entonces se ejecuta este código.
}

5
Unidad 4. Expresiones y control de flujo
Programación orientada a objetos.

Se pueden concatenar varias sentencias if-else de la siguiente manera:

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;
}

Para más ejemplos información sobre el switch visita:


http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_switch

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:

for(condicion_inicio, condicion_final, incremento)


{
//Código a ejecutar
}, donde

condicion_inicio: Donde se inicializa el ciclo, solamente se ejecuta una vez.


condicion_final: Se revisa cada vez que se completa un ciclo, cuando esa evaluación regresa true, el ciclo
termina.
incremento: Es la expresión que se ejecuta cada vez que termina un ciclo, generalmente acá se incrementa
o decrementa un valor.

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:

Los tres parámetros del for son opcionales. [4]

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.

La estructura del while es:

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.

Visita el siguiente link para repasar el tema de while y do-while:


http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_while

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

Das könnte Ihnen auch gefallen