Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 Sentencias de control
De aquí en adelante será indispensable comenzar a elaborar programas que manejen expresiones
y operaciones que inicialmente serán sencillas y que gradualmente demostraran las características,
limitantes y beneficios de la programación en Java. Para esto partiremos primeramente de la
declaración de la estructura básica más simple de un programa en Java. De manera que
estaremos desarrollando soluciones un poco más elaboradas y modulares a partir del uso de
métodos estáticos que es uno de los mecanismos más simples de funcionamiento en Java y que
permite programar funciones independientes de clase alguna.
class NombreClase
{
public static void main (String [] args)
{
/* Cuerpo del programa principal */
}
}
La función main siempre debe ser vista como el punto de arranque para el diseño del programa
completo, mas adelante veremos que los objetos no son mas que estructuras de datos complejas
(es decir, tipos de datos abstractos) que interactúan entre sí.
1
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
Los modificadores de acceso permiten determinar el alcance del procedimiento en este caso será
public, debido a que pretendemos que el procedimiento sea visto desde fuera de la clase principal,
en otro caso podría ser omitido de manera que el procedimiento solo será visto de manera local a
la clase (o paquete). El modificador static determina que se trata de un procedimiento de clase por
lo que no será necesario construir un objeto de la clase para poder emplear dicho procedimiento.
El tipo de dato que regresará el procedimiento varía según del tipo y características de la función,
los tipos de datos disponibles podrían ir desde tipos de datos nativos (int, flota, void, char, etc)
hasta tipos de datos referenciados (arreglo, String, wrapper o un tipo de dato definido por el
usuario “un objeto de clase”).
La lista de argumentos son todos aquellos valores que requieren ser enviados a una función para
que pueda realizar sus sentencias, estos argumentos pueden ser desde tipos de datos nativos
hasta referenciados. Es importante recordar que las variables definidas dentro de los métodos son
llamadas variables locales (algunas veces llamadas variables automáticas, temporales o de pila),
éstas deben ser inicializadas explícitamente antes de ser usadas y son vistas únicamente por la
función.
Suponga que requerimos construir un procedimiento suma que nos permita sumar un par de
valores:
Observe que el modificador de acceso puede ser omitido si se trata de una función local a la clase
principal, de manera que el procedimiento recibe un par de valores y devuelve el resultado.
class Prueba
{
public static void main(String [] args) {
int [] x = {2,3,5,6, 9,1,0};
2
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
class Prueba
{
public static void main(String [] args) {
int [] x = {2,3,5,6, 9,1,0};
int val = 10;
Las variables locales son creadas cuando se realiza la ejecución de un método y son destruidas al
finalizar el método, a esto se debe el nombre de variables temporales. Las variables locales deben
ser inicializadas manualmente antes de ser usadas.
El compilador genera un error si puede determinar una condición donde las variables son usadas
antes de ser inicializadas. En la siguiente unidad veremos mas a detalle esta característica de
construcción de programas empleando el mecanismo de orientación a objetos. Por el momento
emplearemos solo funciones estáticas a la clase para elaborar programas sencillos.
Las estructuras de decisión son estatutos condicionales que nos permiten la ejecución selectiva de
porciones de programa (bloques de código) de acuerdo al valor de una expresión. Java soporta los
estatutos if y switch, que nos permiten ramificaciones de ejecución en dos o mas ramas.
if ( <expresión booleana>) [ { ]
<bloque de estatutos si la expresión es cierta>
[ } ]
else [ { ]
<bloque de estatutos si la expresión es falsa>
[ } ]
Ejemplo:
3
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
switch ( <expresión>) {
case <constante1> :
<bloque de estatutos>
[break;]
case <constante2> :
<bloque de estatutos>
[break;]
default :
<bloque de estatutos>
[break;]
}
En el estatuto switch el valor de la expresión debe ser compatible con un entero y puede existir la
promoción.
La etiqueta default especifica que el segmento de código será ejecutado si el valor de la expresión
nunca coincide con alguno de los casos.
Una estatuto return puede ser usado en lugar de break. Además, si switch esta en un ciclo, el
estatuto continue permitira la salida del estatuto switch.
Por ejemplo:
class Switch1{
public static void main(String args[]){
int k = (int)(Math.random() * 16);
switch(k){
case 2: System.out.println(" case k = 2");
break;
case 4: System.out.println(" case k = 4");
break;
case 8: System.out.println(" case k = 8");
break;
default: System.out.println(" case default " + k);
}
}
}
4
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
Las estructuras de repetición nos permiten ejecutar bloques de código de manera repetitiva. Java
soporta 3 tipos de estructuras de repetición: for, while y do. Los ciclos for y while, verifican la
condición antes de ejecutar el bloque del ciclo. Mientras que do ejecuta el bloque de código y
verifica la condición al final.
Ejemplo:
Ejemplo:
class Prueba
{
public static void main(String [] args) {
int [] x = {2,3,5,6,4,1,0}, y = {5,4,2,1,3,6,7};
Ejemplo:
class Prueba
{
public static void main(String [] args) {
int [][] x = {{2,3},{5,6},{4,1}};
double [][] r = null;
double e = 4.0;
5
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
r = matPorEscalar(x,e);
out.println("la matriz es ");
mostrar(r);
return;
}
class While
{
public static void main(String [] arg)
{
int i = 1;
while (i < 5) {
System.out.println("i = "+ i);
i++;
}
}
}
do [{]
<estatuto o bloque>
[}] while (<verifica expresión>)
class DoWhile
{
public static void main(String [] arg)
{
int i = 1;
do {
System.out.println("i = "+ i);
6
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
i++;
} while (i < 5);
}
}
• break: Rompe el flujo de un bloque switch y de repetición mas cercano a él. Lo que provoca
que el flujo de control sea roto y se salga intempestivamente de ciclo.
do {
lista-de-estatutos;
if (condición) {
break;
}
lista-de-estatutos;
} while (expresion); // break provoca que el flujo continué aquí
• continue: Realiza un salto al final del ciclo de control (verificación) y se reintegra al ciclo de
control.
do {
lista-de-estatutos;
if (condición) {
continue;
}
lista-de-estatutos;
} while (expresion);
Es una sentencia que actúa con elementos que son catalogados como elementos iteradores.
class Prueba
{
public static void main(String [] args) {
int [] x = {2,3,5,6,4,1};
7
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
A continuación emplearemos el diseño de una función estática muy simple con el objetivo de ver la
independencia de la función y mostrar de manera clara lo referente al paso de parámetros que
sigue siendo parte fundamental en la construcción de herramientas modulares.
Es importante observar como el paso de parámetros se puede realizar con cualquier tipo de dato
reconocido por la sintaxis de java, en éste caso tomamos una matriz y la enviamos como
parámetro a una función que se encargara de procesarla para una sumatoria de sus elementos
que la componen, al final regresa como valor el resultado de dicha operación.
Una versión un poco distinta, pero versando sobre la misma idea de manipulación de datos
compuestos como las matrices es la siguiente, observe que en éste caso se emplean un par de
procedimientos. El primero se encarga de recolectar los datos para llenar una matriz con números
aleatorios, posteriormente los datos son transferidos a una matriz local a la función main la cual se
encargara de transferir dicho dato a otro procedimiento vacío(void).
8
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
Finalmente una versión alternativa para la suma de matrices podría verse de la siguiente manera:
9
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
La
10
UAA – Sistemas Electrónicos Programación en Java Eduardo Serna-Pérez
Bibliografía
Nell Dale, Chip Weems, Mark Headington, Programming and Problem Solving whith Java, Jones &
Bartlett, 2005, ISBN: 0-7637-3069-6.
Luis Joyanes Aguilar y Matilde, Java 2 Manual de programación, Osborne-Mc Graw Hill.
11