Está en la página 1de 36

Estructuras de

control Java

Fundamentos del Lenguaje


1.

Variables.

2.

Operadores.

3.

Expresiones.

4.

Instrucciones.

5.

Bloques.

Variables

El nombre de variable debe ser un


identificador vlido, -- un nmero ilimitado de
caracteres Unicode que comienza con una
letra.
El tipo de variable determina que valores
puede contener y que operaciones se pueden
realizar en ella.
Para dar a una variable un nombre y un tipo,
se escribe una declaracin de variable, la cual
aparecera como:
Ejs:

int x;
// Entero de 32 bits
short y; // Entero corto de 16 bits

Tipos de Datos
En el lenguaje de programacin Java, existen dos
categoras de datos:

Primitivos
Referenciales

Una variable de tipo primitivo contiene un valor simple


del tamao y formato apropiado para su tipo: un
nmero, un carcter, o un valor booleano (condicional
verdadero falso), etc

Tipo de Datos primitivo


La siguiente tabla lista, por palabras reservadas, todos los
tipos de datos primitivos soportados por Java, sus tamaos y
formatos, y una breve descripcin de cada uno:
Palabra
Reservada en
JAVA

Descripcin

Tamao

byte

Entero c/longitud
byte

8-bit

short

Entero corto

16-bit

int

Integer

32-bit

long

Entero largo

64-bit

float

Punto flotante
simple p.

32-bit

double

Punto flotante doble


p.

64-bit

Ejemplos primitivos

Ejemplo21: Calcular cuanto recorre la velocidad de la luz en


1000 das.
Ejemplo22: Calcular el rea de un circulo.
//Ejemplo de uso de char
class Ejemplo23 {
public static void main(String args[]) {
char ch1, ch2;
ch1 = 88; // codigo de x
ch2 = 'Y';
System.out.print("ch1 y ch2: ");
System.out.println(ch1 + " " + ch2);
}
}

Cont. De ejemplos

//Ejemplo de conversion(cast)
class Ejemplo24 {
public static void main(String args[]) {
byte b;
int i = 257;
double d = 323.142;
System.out.println("\nConversion de int a byte.");
b = (byte) i;
System.out.println("i y b " + i + " " + b);
System.out.println("\nConversion de double a int.");
i = (int) d;
System.out.println("d y i " + d + " " + i);

System.out.println("\nConversion de double to byte.");


b = (byte) d;
System.out.println("d y b " + d + " " + b);

Ejemplo promocion

//Ejemplo de promocion de valores de diferentes tipos


class Ejemplo25 {
public static void main(String args[]) {
byte b = 42;
char c = 'a';
short s = 1024;
int i = 50000;
float f = 5.67f;
double d =0.1234;
double resultado = (f * b) + (i / c) - (d * s);
System.out.println((f * b) + " + " + (i / c) + " - " + (d *
s));
System.out.println("resultado = " + resultado);
}
}

Tipo de datos Referencia


Una referencia es denominada apuntador
direccin de memoria en otros lenguajes.
Java no soporta el uso explicito de
apuntadores como otros lenguajes. Se
emplea el nombre de variable en su lugar.

Tipo de datos Referencia


(2)
Public class MiFecha{
int dia;
int mes;
int ao;
// Podemos usar MiFecha como sigue:
public static void main(String[] args) {
MiFecha hoy = new MiFecha();
hoy.dia=21;
hoy.mes=8;
hoy.ao=2008;
System.out.println("la fecha es :"
+hoy.dia+"/"+hoy.mes+"/"+hoy.ao);
}
}
La variable hoy es una referencia a un objeto de
MiFecha.

Constantes (final)
Se puede declarar una variable en cualquier mbito para que sea
final.
El valor de una variable final no puede cambiar despus de que
ha sido inicializada. Tales variables son similares a las constantes
en otros lenguajes.
Para declarar una variable final, emplee la palabra reservada
final antes del tipo:
Ej.
final int aFinalVar = 0;
En el caso del ejemplo, se ha declarado e inicializado la variable
en un solo paso. Se puede hacer en dos pasos si se prefiere.
Hecho esto, si se intenta asignar posteriormente un valor a sta
variable, producira un error de compilacin.

Operadores
Un operador realiza una funcin en uno, dos o tres operandos. Un
operador que requiere un operando es denominado operador
unario.
Ej. ++ es un operador unitario que incrementa en uno el valor de
su operando.
Un operador que requiere dos operandos es un operador binario.
Ej. = es un operador binario. Se usa para asignacin de valores a
variables.
Un operador que requiere tres operadores se denomina ternario.
Existe un operador ternario ?: que es una abreviacin de la
instruccin if-else.
Existen tambin tres modalidades de notacin: prefija, postfija e

Operadores Aritmticos
Java soporta varios operadores aritmticos para todos los nmeros
enteros y de punto flotante:
+ (suma), - (resta), * (multiplicacin), / (divisin) y % mdulo.

Operador

Uso

Descripcin

op1 + op2

Suma op1 y op2

op1 - op2

Resta op2 de op1

op1 * op2

Multiplica op1 por


op2

op1 / op2

Divide op1 entre op2

op1 % op2

Calcula el
remanente.

Operadores Aritmticos 2
Los operadores abreviados de incremento/decremento
son sumarizados en la siguiente tabla:
Operado
r

Uso

Descripcin

++

op++

Incrementa op en 1. Asigna primero, incrementa


despus.

++

++op

Incrementa op en 1. Incrementa primero, asigna


despus.

--

op--

Decrementa op en 1. Asigna primero, decrementa


despus.

--

--op

Decrementa op en 1. Decrementa primero, asigna


despus.

Operadores Relacionales
Un operador relacional compara dos valores y determina la
relacin entre ellos. Por ejemplo, != retorna verdadero si los
dos operandos son diferentes. A continuacin una tabla de
operadores:
Ej.

Operador

Uso

Retorna verdadero

>

op1 > op2

op1 es mayor que op2

>=

op1 >= op2

<

op1 < op2

<=

op1 <= op2

==

op1 == op2

op1 y op2 son iguales

!=

op1 != op2

op1 y op2 son diferentes

op1 es mayor que o igual que


op2
op1 es menor que op2
op1 es menor que o igual que
op2

Operadores Condicionales
Los operadores relacionales frecuentemente son empleados con
operadores condicionales para construir ms complejas expresiones de
toma de decisiones.
Java soporta seis operadores condicionales cinco binarios y uno unario
- como aparece en la siguiente tabla:
Operado
r

Uso

Retorna verdadero si

&&

op1 && op2

op1 y op2 son ambos verdad. (shortcircuit)

||

op1 | | op2

o op1 o op2 es verdad. (shortcircuit)

!op

op es falso.

&

op1 & op2

op1 | op2

op1 ^ op2

op1 y op2 son ambos verdad. (nonshortcircuit)


o op1 o op2 es verdad. (non-shortcircuit)
si op1 y op2 son diferentes esto es si uno u
otro de los operandos es verdad, pero no los

Operadores de Cambio
Un operador de cambio realiza transformaciones de
manipulaciones de bits en datos cambiando los bits de su
primer operando a la izquierda la derecha. La tabla a
continuacin resume los operadores de cambio disponibles
en Java.
Operado
r

Uso

Operacin

>>

op1 >> op2

Cambia bits de op1 a la derecha basado en


op2

<<

op1 << op2

Cambia bits de op1 a la izquierda basado


en op2

>>>

op1 >>>
op2

Cambia bits de op1 a la derecha basado en


op2 (unsigned)

Operadores Bitwise
La siguiente tabla muestra los cuatro operadores que el lenguaje
Java provee para realizar lgicas a nivel de bit en sus operandos:

Operador

Uso

Operacin

&

op1 & op2

Bitwise and

op1 | op2

Bitwise or

op1 ^ op2

Bitwise xor

~op2

Bitwise
complement

Operadores de Asignacin
La siguiente lista la asignacin abreviada y sus equivalentes
sin abreviar:
Operador

Uso

Equivalente a

+=

op1 += op2

op1 = op1 + op2

-=

op1 -= op2

op1 = op1 op2

*=

op1 *= op2

op1 = op1 * op2

/=

op1 /= op2

op1 = op1 / op2

%=

op1 %= op2

op1 = op1 % op2

&=

op1 &= op2

op1 = op1 & op2

|=

op1 | = op2

op1 = op1 | op2

^=

op1 ^= op2

op1 = op1 ^ op2

<<=

op1 <<= op2

op1 = op1 << op2

>>=

op1 >>= op2

op1 = op1 >> op2

>>>=

op1 >>>= op2

op1 = op1 >>>


op2

Otros Operadores
La siguiente tabla lista los otros operadores que el
lenguaje Java soporta:
Operador
?:

Descripcin
Abreviacin if - else

[]

Empleado para declarar arreglos y accesar elementos.

Usado para formar nombres cualificados

( parametros
)

Delimita una lista de parmetros separados por coma

( tipo )

Convierte un valor al tipo especificado

new

Crea un nuevo objeto un nuevo arreglo

instanceof

Determina si su primer operando es una instancia del


segundo operando. (descendencia directa o no).

Expresiones
Variables y operadores, los cuales aparecen en las secciones
previas, son bloques bsicos que conforman los programas. Se
pueden combinar literales, variables, y operadores para formar
expresiones segmentos de cdigo que realizan clculos y
retornan valores.
Por definicin, una expresin es una serie de variables,
operadores y llamadas a mtodos (construidas de acuerdo a la
sintaxis del lenguaje) que resultan en un valor simple.

Instrucciones (Sentencias)
Instrucciones son claramente equivalentes a las sentencias
en los lenguajes naturales. Una instruccin forma una
completa unidad de ejecucin. Los siguientes tipos de
expresiones pueden ser convertidas en instrucciones
finalizando la expresin con un punto y coma, ( ; ).
Expresiones de asignacin.
Cualquier uso de ++ --.
llamadas a mtodos.
Expresiones de creacin de objetos.
Hay tres tipos de expresiones: instruccin de expresin,
instruccin de declaracin e instruccin de control de flujo.

Instrucciones de Control de
Flujo
Se pueden emplear instrucciones de flujo para condicionalmente
ejecutar instrucciones, para repetidamente ejecutar bloques de
instrucciones y para de otro modo cambiar el flujo secuencial de
control.

Hay cuatro tipos de instrucciones de control de flujo que son:


bucles, de decisin, manejo de excepciones y ramificaciones
(branching).

While y Do-While
Se debe usar una instruccin while para continuamente ejecutar
un bloque de instrucciones mientras una condicin permanezca
verdadera. La sintaxis general de while es:
while (expression) {
statement
}
Primero, la instruccin while evala la expresin, la cual debe
retornar un valor booleano. Si la expresin retorna verdadero,
entonces la instruccin while ejecuta las instrucciones dentro del
bloque asociado. El proceso se mantiene ininterrumpido hasta que
la expresin retorne falso.

Do - While
Esta instruccin es muy similar a la anterior, con la
diferencia de que la evaluacin de la instruccin se
hace al final, no al principio. Esto permite ejecutar
aunque sea una vez el bloque asociado sin evaluar
la expresin.

Instruccin For
La instruccin for provee una forma compacta de iterar sobre un
rango de valores. La forma general de la instruccin for puede ser
expresada como esto:
for (initialization; termination; increment) {
statement
}
La inicializacin es una expresin que inicializa el bucle. Es
ejecutada una vez al comienzo del bucle. La expresin de
terminacin determina cuando terminar el bucle. Esta expresin
es evaluada al tope de cada iteracin del bucle. Cuando la
expresin evala a falso, el bucle termina. Finalmente, la
expresin increment es invocada despus de cada iteracin. Todos
esos componentes son opcionales.
Los bucles for son frecuentemente utilizados para iterar sobre los
elementos de un arreglo, o los caracteres de un String.

If/Else
La instruccin if / else permite al programa ejecutar
selectivamente otras instrucciones, basado en algn
criterio. La forma general sera:
if (expression) {
statement(s)
}

La Instruccin Switch
Se emplea la instruccin switch para condicionalmente
ejecutar instrucciones basadas en expresiones de enteros.
La instruccin switch evala su expresin, y ejecuta la
instruccin case adecuada. Otro punto de inters es la
instruccin break despus de cada case. Cada instruccin
break termina el bloque de switch, y el flujo de control
contina con la primera instruccin que sigue despus del
bloque de switch. Si no se colocaran instrucciones break,
el cursor de ejecucin seguira ejecutando otros bloques
case.

Manejo de Excepciones
El lenguaje de programacin Java provee un mecanismo conocido como
excepciones para ayudar a los programas a reportar y manejar errores.
Cuando un error ocurre, el programa arroja una excepcin, lo cual
significa que el flujo normal de ejecucin a quedado interrumpido y que
el entorno de runtime intenta encontrar un manejador de excepciones
un bloque de cdigo que pueda manejar un tipo particular de error. El
manejador de excepciones puede intentar recuperar del error , si
determina que el error es irrecuperable, proveer una finalizacin gentil
del programa. Hay tres instrucciones que juegan un rol en el manejo de
excepciones: Try, Catch y Finally.
try {
statement(s)
} catch (exceptiontype name) {
statement(s)
} finally {
statement(s)
}

En otro apartado ampliaremos este tema.

Instrucciones de Ramificacin
El lenguaje de programacin Java soporta tres
instrucciones de ramificacin:

Break

Continue

Return.

Instruccin Break
La instruccin break tiene dos formas: con etiqueta
sin etiqueta. La forma sin etiqueta es empleada para
terminar el bucle interno en que se encuentre,
mientras que la forma con etiqueta permite terminar
una instruccin marcada con una etiqueta.

Instruccin Continue
La instruccin continue se emplea para saltar (obviar) la
iteracin actual de un bucle for, while do-while. La forma
sin etiqueta salta hasta el final del bucle interno y evala la
expresin booleana que controla el bucle, bsicamente
obviando el remanente de esta iteracin del bucle. La forma
con etiqueta salta (obvia) la iteracin actual con la etiqueta
dada. A continuacin unos ejemplos con cada una de las
formas:

Instruccin Return
Se emplea la instruccin return para salir del mtodo actual. El
flujo de control retorna a la instruccin que sigue al mtodo
llamador. La instruccin return tiene dos formas: una que retorna
un valor y otra que no lo hace. Para retornar un valor,
simplemente coloque el valor (o una expresin que calcule el
valor) despus de la palabra reservada return:
return ++count;
El tipo de dato del valor retornado debe ser acorde con el tipo de
dato de retorno del mtodo (en su declaracin). Cuando un
mtodo es declarado void, use la forma de return que no retorna
valor.
return;

Ejemplos:

// ejemplo de un arreglo sencillo.


class Ejemplo26 {
public static void main(String args[]) {
int diasDelMes[];
diasDelMes = new int[12];
diasDelMes[0] = 31;
diasDelMes[1] = 29;
diasDelMes[2] = 31;
diasDelMes[3] = 30;
diasDelMes[4] = 31;
diasDelMes[5] = 30;
diasDelMes[6] = 31;
diasDelMes[7] = 31;
diasDelMes[8] = 30;
diasDelMes[9] = 31;
diasDelMes[10] = 30;
diasDelMes[11] = 31;
System.out.println("Febrero tiene " + diasDelMes[1] + "
dias.");
}
}

// Ejemplo de ++ y --.
class Ejemplo27 {
public static void main(String args[]) {
int a = 1;
int b = 2;
int c;
int d;
c = ++b;
d = a++;
c++;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
}
}

//ejemplo de if
class Ejemplo28 {
public static void main(String args[]) {
int mes = 4; // abril
String estacion;
if(mes == 12 || mes == 1 || mes == 2)
estacion = "el Invierno";
else if(mes == 3 || mes == 4 || mes == 5)
estacion = "la primavera";
else if(mes == 6 || mes == 7 || mes == 8)
estacion = "el verano";
else if(mes == 9 || mes == 10 || mes == 11)
estacion = "el Otoo";
else
estacion = "Mes desconocido";
System.out.println("Abril esta en " + estacion + ".");
}
}

También podría gustarte