Está en la página 1de 44

M D ULO B

Sin t x is

Te m a 2 .3

n dice de la u n ida d:

1. Com ent arios

2. Punt os y com a, bloques y espacios en blanco

3. I dent ificadores

4. Variables

5. Tipos de dat os

6. Variables prim it ivas versus com plej as

7.
Un ida d 2 .3 Sin t a x is

En est a unidad t rat arem os en det alle la sint axis del lenguaj e de program acin Java.
Dicha sint axis es com probada por el com pilador y en caso de no ser correct a, est e
nos indicar los errores o avisos exist ent es. Por defect o, no se pueden ej ecut ar
program as Java con errores de com pilacin, por lo que la sint axis del program a de-
be ser 100% correct a.

1 . Com e n t a r ios

Los com ent arios son lneas de cdigo que no son ej ecut adas en t iem po de ej ecu-
cin, ni siquiera son incluidas en el byt e code com pilado. Est os com ent arios, perm i-
t en incluir explicaciones acerca de qu es lo que est haciendo nuest ro cdigo, do-
cum ent acin, inhabilit ar lneas de cdigo que ya no son necesarias en runt im e, et c.

Exist en t res form as dist int as de escribir los com ent arios:

/ / com ent ario de una sola lnea. Abarca desde el com ienzo del
com ent ario / / hast a el final de lnea.

/* * / Com ent ario de una o m s lneas. Abarca desde el co-


m ienzo del com ent ario / * hast a el final del m ism o * /

/* * * / Com ent ario de docum ent acin, ut ilizado por la


herram ient a j avadoc.exe. Abarca desde el com ienzo del com ent ario
/ * * hast a el final del m ism o * / .

Ej e m plo: A cont inuacin se m uest ra un ej em plo con los dist int os t i-


pos de com ent arios m encionados ant er iorm ent e.

79
MDULO 2

2 . Pu n t os y com a , bloqu e s y e spa cios e n bla n co

Uno de los caract eres m s im port ant es a t ener en cuent a en Java es el punt o y co-
ma o ;.

El punt o y com a define una sent encia Java o lo que es lo m ism o una lnea sim ple de
cdigo t erm inada en un punt o y com a. La lnea sim ple de cdigo puede o no est ar
fsicam ent e form ada en una lnea fsica.

Ej e m plo: A cont inuacin se m uest ra un ej em plo con los dist int os t i-


pos de lneas sim ples de cdigo m encionados ant eriorm ent e.

80
Un ida d 2 .3 Sin t a x is

Ot ro concept o im port ant e a t ener en cuent a en Java es el de bloque de cdigo. Un


bloque es un conj unt o de sent encias ( de 0 a n) agrupadas ent re llaves ( { } ) . Los
bloques pueden est ar anidados.

Suelen ut ilizarse conj unt am ent e con las sent encias de cont rol de fluj o ( ver punt o
8) , pero t am bin pueden ut ilizarse, por ej em plo, para m inim izar el m bit o de cier-
t as variables, com o son las variables de bloque ( ver punt o 4.2) .

Ej e m plo: A cont inuacin se m uest ra un ej em plo de bloques de cdi-


go con una o varias sent encias y anidam ient os de bloques

Java perm it e los espacios en blanco ent re elem ent os de cdigo fuent e. Son ut iliza-
dos principalm ent e para separar cada uno de los elem ent os de la sint axis Java ( al
m enos un espacio en blanco com o m nim o) y m ej orar el ent endim ient o del cdigo
( el nm ero de espacios ut ilizado para est e propsit o es irrelevant e) .

Ej e m plo: A cont inuacin se m uest ran ej em plos donde los espacios


se ut ilizan com o separadores de elem ent os de la sint axis ( ent re int e i, y en-
t re int y j ent re ot ros) y com o m ej oras para el ent endim ient o del cdigo:

81
MDULO 2

3 . I de n t ifica dor e s

Son los nom bres unvocos que se le dan a las clases, m t odos y variables. Hay que
t ener present e las siguient es reglas:

El ident ificador debe em pezar por una let ra, subrayado ( _) o


dlar ( $) .

Despus del prim er carct er se pueden usar nm eros.

Java dist ingue ent re m aysculas y m insculas ( es case sensi-


t ive ) . Los ident ificadores VARI ABLE y variable son dos ident ificado-
res dist int os.

Nunca pueden coincidir con una keyword o palabra reservada


del lenguaj e. A cont inuacin se m uest ra un list ado de las keyword
m as ut ilizadas en Java y que por t ant o t ienen un significado especial
para el lenguaj e

82
Un ida d 2 .3 Sin t a x is

Ej e m plo: Los siguient es ident ificadores son vlidos: variable, $va-


riable2, CONSTANTE, nom bre_usuario, nom breUsuario, _variable_sist em a

Ej e m plo: Los siguient es ident ificadores no son vlidos: 1variable,


int , # variable, variable% Final

4 . Va r ia ble s

Una variable es un cont enedor de dat os ident ificado m ediant e un ident ificador o
nom bre. Dicho ident ificador se ut ilizar para referenciar el dat o que cont iene.

Toda variable debe llevar asociado un t ipo que describe el t ipo de dat o ( ver punt o
5) que guarda. Por t ant o, una variable t iene:

Un t ipo

Un ident ificador

Un dat o o valor.

4 . 1 D e cla r a cin de va r ia ble s

83
MDULO 2

La declaracin es la sent encia m ediant e la cual se define una variable, asig-


nndola un t ipo y un ident ificador. El form at o es t ipo ide n t ifica dor ;

Ej e m plo: int cont ador; / / t endr el valor por defect o 0

Adicionalm ent e se le puede asignar un valor inicial m ediant e una asignacin.


El form at o es t ipo ide n t ifica dor = va lor ;

Ej e m plo: int cont ador = 10;

En el caso de que no se le asigna un valor, se inicializar con el valor por de-


fect o para ese t ipo ( verem os los dist int os t ipos y sus valores por defect o en el
punt o 5 Tipos de Dat os) .

4 . 2 m bit o de la s va r ia ble s

El m bit o de una variable es la zona de cdigo donde se puede referenciar di-


cha variable a t ravs de su ident ificador.

El lugar de declaracin de una variable est ablece su m bit o. Los dist int os m -
bit os exist ent es son:

At ribut os ( o variables m iem bro de una clase) . Se pueden ut ili-


zar solam ent e asociados a la clase a la que pert enecen.

Parm et ros de m t odo. Se pueden ut ilizar solam ent e en el


m t odo del cual son parm et ros.

Variables locales: ( o de m t odo) siem pre hay que inicializar-


las. Solam ent e puede accederse a ellas, dent ro del m t odo donde
han sido declaradas.

Variables de bloque: siem pre hay que inicializarlas. Solam ent e


puede accederse a ellas, dent ro del bloque donde han sido declara-
das.

84
Un ida d 2 .3 Sin t a x is

En el caso de que se declaren variables con el m ism o ident ificador en m bit os


dist int os ( en el m ism o no se puede) , t ienen preferencia las del m bit o m s in-
t erno. Las variables de bloque t ienen preferencia frent e a las locales; est as t ie-
nen preferencia frent e a los parm et ros y por lt im o las de m enor preferencia
son los at ribut os.

Ej e m plo: El siguient e ej em plo m uest ra el error de com pilacin al in-


t ent ar referenciar una variable fuera de su m bit o.

85
MDULO 2

Ej e m plo: El siguient e ej em plo m uest ra cual es la variable ut ilizada,


segn el m bit o en el que est declarada.

86
Un ida d 2 .3 Sin t a x is

5 . Tipos de da t os.

En Java exist en dos t ipos de dat os genricos:

Tipos Prim it ivos. Exist en ocho t ipos de dat os prim it ivos clasifi-
cados en cuat ro grupos diferent es:
Lgico: boolean.
Carct er: char.
Nm eros ent eros: byt e, short , int y long.
Nm eros reales: double y float .

Tipos Com plej os o clases. Exist e un caso especial que es el de


enum eracin: enum que aparece en Java JSE 5.0

5 .1 Tipo de da t o lgico

La keyword ut ilizada para definir un t ipo de dat o lgico es boolean. Sus posibles
valores son:

t rue: o verdadero

false: o falso. Es el valor por defect o.

Ej e m plos: boolean swit ch1 = t rue;

boolean swit ch2; / / Su valor es false.

Se suelen ut ilizar en las sent encias de cont rol de fluj o del t ipo bifurcaciones del
t ipo if- t hen- else ( ver punt o 8) .

5 .2 Tipo de da t o ca r ct e r

La keyword ut ilizada para definir un t ipo de dat o carct er es char y represent a


un carct er UNI CODE, siendo su t am ao de: 16 bit s ( 2 byt es) . Desde la versin
5.0 Java soport a UNI CODE 4.0 que define algunos caract eres que no caben en
16 bit s por lo que se necesit a un int para represent arlos ( o dos char dent ro de
un St ring) .

Sus posibles valores son:

Un carct er ent re com illas sim ples: a.

87
MDULO 2

Un carct er especial con \ por delant e: \ n, \ t , et c.

Un cdigo UNI CODE: \ uxxxx ( donde xxxx es un valor en


hexadecim al) .

El valor por defect o es \ u0000 - > null. Not a: No es un espa-


cio en blanco.

Ej e m plos: char let ra1 = a;

char let ra2 = \ n;

char let ra3 = \ u0041;

char let ra4; / / su valor es null

Para las cadenas de caract eres exist e un t ipo com plej o: la clase St ring que se
ver en m s det alle en la Unidad 2.6 Clases bsicas.

Se suelen ut ilizar para el t rat am ient o de caract eres, ya sea com o caract eres in-
dividuales dent ro de un St ring, caract eres cont enidos en un fichero, et c.

5 .3 Tipo de da t os e n t e r os

Las keyword ut ilizadas para definir un t ipo de dat o ent ero son byt e, short , int y
long. Sus t am aos son:

byt e: 8 bit s ( 1 byt e) , por t ant o el rango de valores es de - 128


a 127.

short : 16 bit s ( 2 byt es) , por t ant o el rango de valores es de -


32768 a 32767

int : 32 bit s ( 4 byt es) , por t ant o el rango de valores es de -


2147483468 a 2147483467

long: 64 bit s ( 8 byt es) , por t ant o el rango de valores es de -


enorm e a enorm e

Sus posibles valores son:

88
Un ida d 2 .3 Sin t a x is

Un valor decim al ent ero: 2 ( por defect o para t ipo int ) o 2L


( para t ipo long) .

Un valor oct al: 077 ( com enzando por cero) .

Un valor hexadecim al: 0xBAAC

El valor por defect o es 0.

Ej e m plos: byt e unByt e = 12;

short unShort ; / / t iene el valor 0

short unShort ; / / t iene el valor 0

int unI nt = - 199;

int ot roI nt = 065;

long unLong = 2; ( o long unLong = 2L; )

long ot roLong = 0xABCD;

Se suelen ut ilizar en operaciones arim t icas, en sent encias de cont rol de t ipo bu-
cle ( en concret o la sent encia for y el t ipo int ) , et c.

5 .4 Tipo de da t os r e a le s

Las keyword ut ilizadas para definir un t ipo de dat o real son float y double. Sus
t am aos son:

float : 32 bit s ( 4 byt es) . Su precisin vara segn la plat afor-


m a.

double: 64 bit s ( 8 byt es) . Su precisin t am bin vara segn la


plat aform a.

Sus posibles valores son:

Un valor decim al ent ero: 2 ( por defect o para t ipo int ) .

Un valor decim al real: 0.17 o 6.02E23 ( por defect o double) .

Un valor decim al real: 0.17F o 0.17D ( redundant e) .

89
MDULO 2

El valor por defect o es 0.0 ( cero) .

Ej e m plos: float unFloat = 0.17F;

double unDouble; / / su valor es 0.0

double ot roDouble = - 12.01E30;

Se suelen ut ilizar en operaciones arim t icas, et c.

5 .5 Tipo de da t o com ple j o

Las keyword es el nom bre de la clase del obj et o que va a cont ener la variable.

Sus posibles valores son:

Referencias a obj et os ( o inst ancias) en m em oria.

El valor por defect o es null

Ej e m plos: St ring unSt ring = new St ring( Hola ) ;

St ring ot roSt ring; / / su valor es null

Se suelen ut ilizar para cont ener obj et os de nuest ro m undo real.

5 .6 Tipo de da t o e n u m e r a cin

La keyword ut ilizada para definir un t ipo de dat o enum eracin es enum .

Se t rat a de un t ipo de dat o com plej o algo especial que surge con la versin 5.0
de Java. I m plem ent a una clase que t iene un at ribut o que puede t om ar varios va-
lores y solo esos.

Ej e m plo: enum Sem aforo { VERDE, AMBAR, ROJO }

Se suelen ut ilizar para t ener una list a de posibles valores asociados a una varia-
ble y solam ent e dichos valores.

5 .7 Ej e m plos de va r ia ble s con dist in t os t ipos de da t os

El siguient e ej em plo m uest ra el valor de variables de dist int os t ipos con sus va-
lores por defect o.

90
Un ida d 2 .3 Sin t a x is

El siguient e ej em plo m uest ra el valor de variables de dist int os t ipos con sus va-
lores asignados en la declaracin

5 .8 Con ve r sion e s e n t r e t ipos

91
MDULO 2

Un t ipo de dat o nm erico puede llegar a convert irse a ot ro t ipo. Exist en cuat ro
ent ornos de conversin en Java:

Prom ocin arit m t ica. Por ej em plo: de short a int y est e a


float .

Asignacin. Por ej em plo: long l = 42; / / un int se conviert e en


long

Llam ada a m t odos con parm et ros. Por ej em plo: f( long p) - >
f( 5) / / se llam a a un m t odo con un int y se conviert e a un long

Cast ing. Por ej em plo: int i = ( int ) 42L / / un long se conviert e en


int . Ver la explicacin de downcast ing.

Las conversiones im plcit as se resuelven en t iem po de com pilacin. El upcast ing


( de un t ipo m s pequeo convert irlo a uno m s grande) se realiza im plcit am en-
t e.

El downcast ing ( de un t ipo m s grande convert irlo a uno m s pequeo) se reali-


zan explcit am ent e ( hay que indicar a que t ipo se quiere convert ir) y se resuelve
en t iem po de ej ecucin. Not a: puede perderse inform acin, por lo que se obliga
a que sean realizados explcit am ent e.

6 . Va r ia ble s pr im it iva s ve r su s com ple j a s

Una variable de t ipo prim it ivo cont iene el dat o direct am en-

t e:

Una variable de t ipo com plej o cont iene una referencia ( punt ero) a la zona de m e-
m oria donde est el obj et o:

92
Un ida d 2 .3 Sin t a x is

7 . Ope r a dor e s

Los operadores realizan funciones sobre uno, dos o t res operandos ( op) . Por t ant o,
una prim era clasificacin puede ser est a:

Operadores unarios: pueden ser de t ipo prefij os o post fij os.


op ope r a dor u ope r a dor op.

Ej e m plo: cont ador+ + ; / / operador post fij o de sum ar 1 a la propia


variable cont ador. La variable se queda con el valor sum ado

Operadores binarios: ope r a dor op ope r a dor

Ej e m plo: cont ador + 2; / / operador de sum ar un nm ero a una va-


riable. La variable en si m ism a no se queda con la sum a.

Operadores t ernarios: op ? op : op

Ej e m plo: cont ador > 2 ? t rue : false; / / es sim ilar a un if- t hen- else
de la siguient e m anera if ? Then : else ;

Los operadores siem pre devuelven un valor que depende del operador y del t ipo
de los operandos.

Ot ra posible clasificacin es por la nat uraleza del operador:

Arit m t icos

Relacionales

Condicionales

De desplazam ient o

93
MDULO 2

Lgicos

De asignacin

Ot ros

7 .1 Ope r a dor e s a r it m t icos

A sim ilit ud con el m undo m t em at ico, exist en los siguient es operadores arit m t i-
cos binarios:

+ : sum a dos operandos op1 + op2 . Hay que t ener cuidado


con las variables de t ipo St ring, porque en est e caso concat ena los
valores.

- : rest a dos operandos op1 op2

* : m ult iplica dos operandos op1 * op2

/ : divide dos operandos op1 / op2

% : calcula el rest o de la divisin op1 % op2

Los valores que devuelven est os operadores depende de los t ipos de los ope-
randos:

int : cuando ninguno de los operandos es float , double o long.


En el caso del operador % siem pre devuelve un int .

long: cuando ninguno de los operandos es float o double y hay


al m enos uno que es long.

float : cuando ninguno de los operandos es double y hay al


m enos uno que es float .

double: cuando al m enos hay uno de los operandos es double.

Tam bin exist en operadores arit m t icos unarios ( act an solo sobre un operan-
do) :

94
Un ida d 2 .3 Sin t a x is

+ op: conviert en al operando en int en caso de que fuese byt e,


short o char.

- op: cam bia el signo al operando.

+ + op: increm ent a al operando en 1 ( evaluando el operando


despus de increm ent arse) .

op+ + : increm ent a el operando en 1 ( evaluando el operando


ant es de increm ent arse) .

- - op: decrem ent a el operando en 1 ( evaluando el operando


despus de decrem ent arse) .

op- - : decrem ent a el operando en 1 ( evaluando el operando


ant es de decrem ent arse) .

Ej e m plo: En el ej em plo siguient e se m uest ran los operador es aut oin-


crem ent ales, diferenciando si se evala el valor de la variable ant es o des-
pus del increm ent o.

7 .2 Ope r a dor e s r e la cion a le s

Java t iene los siguient es operadores relacionales:

95
MDULO 2

> : com para si un operando es m ayor que ot ro op1 > op2

<: com para si un operando es m enor que ot ro op1 < op2

==: com para si un operando es igual que ot ro op1 = = op2 .


Cuidado con no confundir con el operador de asignacin =

! = : com para si un operando es dist int o que ot ro op1 != op2

> = : com para si un operando es m ayor o igual que ot ro op1


> = op2

< = : com para si un operando es m enor o igual que ot ro op1


< = op2

Todos est os operandos devuelven un boolean indicando si cum ple la com para-
cin.

Ej e m plo: if ( 5 < 7) { ... } / / La condicin se ej ecut ar al devolver el


operador < un t rue o verdadero.

7 .3 Ope r a dor e s con dicion a le s

Suelen com binarse con los operadores relacionales para crear expresiones m s
com plej as, devolviendo un boolean. Java t iene los siguient es operadores
condicionales:

&&: AND lgico. Com prueba si am bos operandos son verdade-


ros op1 & & op2

| | : OR lgico. Com prueba si uno de los dos operandos es ver-


dadero op1 | | op2

! : NOT lgico. Niega al operadondo !op

Ej e m plo: if ( 5 < 7 && 4 < 8) { ... } / / La condicin se ej ecut ar al


devolver el prim er operador < un t rue y el segundo operador < un t rue.

7 .4 Ope r a dor e s de de spla za m ie n t o

Java t iene los siguient es operadores de desplazam ient o:

96
Un ida d 2 .3 Sin t a x is

> > : desplaza los bit s del prim er operando hacia la derecha
t ant as veces com o indique el segundo operando op1 > > op2 . Reali-
za la m ism a funcin que m ult iplicar por 2, t ant as veces se desplace.

< < : desplaza los bit s del prim er operando hacia la izquierda
t ant as veces com o indique el segundo operando op1 < < op2 . Reali-
za la m ism a funcin que dividir por 2, t ant as veces se desplace.

> > > : desplaza los bit s del prim er operando hacia la derecha
t ant as veces com o indique el segundo operando pero sin signo op1
> > > op2 . Realiza la m ism a funcin que m ult iplicar por 2, t ant as ve-
ces se desplace, pero sin t ener en cuent a la posicin de signo.

Ej e m plo: En los siguient es ej em plos se m uest ran los operador es de


desplazam ient o

97
MDULO 2

7 .5 Ope r a dor e s lgicos

Java t iene los siguient es operadores lgicos:

&: AND lgico a nivel de bit de los operandos ( el result ado es


uno si los bit s de am bos operandos son uno) op1 & op2 . Cuidado
con no confundir con el operador lgico &&

| : OR lgico a nivel de bit de los operandos ( el result ado es


uno si alguno de los bit s de los operandos es uno) op1 | op2 . Cui-
dado con no confundir con el operador lgico | |

98
Un ida d 2 .3 Sin t a x is

^ : XOR lgico a nivel de bit de los operandos ( el result ado es


uno si alguno de los bit s de los operandos es uno, pero no los dos a
la vez) op1 ^ op2

~ : com plem ent o a nivel de bit del operando ( cam bia los ceros
por uno y viceversa) ~ op1

7 .6 Ope r a dor e s de a sign a cin

Java t iene los siguient es operadores de asignacin:

= : guarda el valor del segundo operando en el prim ero op1 =


op2

+ = : guarda la sum a de los dos operandos en el prim ero op1


+ = op2

- = : guarda la rest a de los dos operandos en el prim ero op1 -


= op2

99
MDULO 2

* = : guarda la m ult iplicacin de los dos operandos en el pri-


m ero op1 * = op2

/ = , % = , &= , | = , ^ = , < < = , > > = , > > > = : Sim ilar al ant erior,
para cada uno de los operadores indicados.

7 .7 Ot r os ope r a dor e s

Exist en ot ros operadores en Java com o son:

?: : se t rat a de una abreviat ura de la est ruct ura if- t hen- else ( if
op1? t hen op2 : else op3) op1 ?op2 :op3

[ ] : ut ilizado para declarar, crear y acceder a arrays ( se vern


en la Unidad 3.1) .

. : ut ilizado para acceder a los at ribut os y m t odos de los ob-


j et os ( se vern en la Unidad 2.4) .

( parm et ros) : ut ilizado para pasar parm et ros a un m t odo.

( t ipo) : ut ilizado para realizar cast ings ( conversiones de t ipo) .

new : ut ilizado para crear obj et os nuevos ( se ver en la Uni-


dad 2.4) .

inst anceof : ut ilizado para chequear si el prim er operando es


una inst ancia del t ipo indicado en el segundo operando.

8 . Se n t e n cia s de con t r ol de flu j o

Sin las sent encias de cont rol de fluj o, el cdigo Java se ej ecut ara linealm ent e des-
de la prim era lnea hast a la lt im a.

Exist en cuat ro t ipos de sent encias de cont rol de fluj o:

Bucles: while, do- while, for y for/ in

100
Un ida d 2 .3 Sin t a x is

Bifurcaciones: if- t hen- else y swit ch- case.

Gest in de excepciones: t ry- cat ch- finally y t hrow. Las verem os


con m s det alle en la Unidad 3.5 Manej o de excepciones.

De rupt ura: break, cont inue, label: y ret urn.

8 .1 Se n t e n cia s w h ile y do- w h ile

La sent encia while se ut iliza para ej ecut ar cont inuam ent e un bloque de cdigo
m ient ras que la condicin del while sea cum pla ( es decir la evaluacin de la
condicin sea t rue o verdadera) .

while(expresin)
{
sentencias;
}

La sent encia do- while es parecida a la sent encia while pero asegura que com o
m nim o el bloque de cdigo se ej ecut a una vez.

do
{
sentencias;
}
while(expresin);

8 .2 Se n t e n cia for

La sent encia for facilit a la ej ecucin de un bloque de cdigo un nm ero det er-
m inado de veces, m ient ras la evaluacin de la expresin de t erm inacin se
cum pla o sea t rue.

for(inicializacin; terminacin; incremento)


{
sentencias;
}

Las variables definidas en la sent encia de inicializacin son locales al bloque. Por
t ant o dej an de exist ir una vez se haya t erm inado el bucle.

Ej e m plo: se m uest ra un ej em plo de las sent encias de cont rol de t ipo


bucles vist as hast a el m om ent o

101
MDULO 2

8 .3 Se n t e n cia for / in

Est a nueva sent encia que aparece en el Java SE 5.0 nos facilit a la it eracin por
los elem ent os de cualquier t ipo de coleccin: arrays, list as, et c

for(inicializacin: coleccin) Nota: Se usa : en vez de ;.


{
sentencias;
}

Las variables definidas en la sent encia de inicializacin son locales al bloque. Por
t ant o dej an de exist ir una vez se haya t erm inado el bucle.

Ej e m plo: se m uest ra un ej em plo de la sent encia de cont rol for/ in

public void list ar( int [ ] param )


{
for( int i: param )
Syst em .out .print ln( i) ;
}
Bsicam ent e, se t rat a de una sim plificacin a la hora de codificar. Es decir, al fi-
nal, el com pilador conviert e el cdigo en una sent encia for convencional com o la
siguient e:

102
Un ida d 2 .3 Sin t a x is

public void list ar( int [ ] param )


{
int i = 0;
for( int j = 0; j < param .lengt h; j + + )
i = param [ j ] ;
Syst em .out .print ln( i) ;
}

8 .4 Se n t e n cia if t h e n - e lse

La sent encia if- t hen- else perm it e elegir qu bloque de cdigo ej ecut ar ent re dos
posibilidades dependiendo de la evaluacin de la expresin. Si se cum ple ( t rue)
ej ecut a el prim er bloque o bloque del if. Sino se cum ple se ej ecut a el bloque del
else.
La sint axis del if sin else sera la siguient e:

if(expresin)
{
sentencias;
}

La sent encia if- t hen- else sera

if(expresin)
{
sentencias;
}
else
{
sentencias;
}

Las sent encias if pueden est ar concat enadas. Su sint axis sera:

if(expresin)
{
sentencias;
}
else if (expresin2)
{
sentencias;
}else
{
sentencias;
}

Ej e m plo: se m uest ra un ej em plo de la sent encia de cont rol if anida-


das

103
MDULO 2

public void evaluar( int param )


{
if ( param < 5)
{
/ / ej ecut am os algo
} else if ( param > = 5 && param < 10) {
/ / ej ecut am os algo
} else {
/ / ej ecut am os algo
}
}

8 .5 Se n t e n cia sw it ch

La sent encia swit ch es un caso part icular de la sent encia if- t hen- else if- else.
Evala una expresin del t ipo int o que pueda ser convert ida a int de form a im -
plcit a ( com o puede ser un char) .
As se evala la expresin int Expresin y va com parando cada uno de los case a
ver si cum ple la condicin. En el caso de que la com paracin sea t rue, se ej ecu-
t an las sent encias siguient es hast a que se encuent re la siguient e sent encia
break o llegue al final de la sent encia swit ch.
En el caso de que t odas las com paraciones sean false se ej ecut ar las sent en-
cias del default ( en el caso de exist ir, puest o que es opt at ivo) .

switch(intExpresin)
{
case intExpresin:
sentencias;
break;


default: // es optativo
sentencias;
}

Ej e m plo: se m uest ra un ej em plo de la sent encia de cont rol swit ch

public void list ar( int param )


{
swit ch( param ) {
case 1:
/ / ej ecut ar algo
break;
case 2:
/ / ej ecut ar algo
break;
default :
/ / ej ecut ar algo
break;
}

104
Un ida d 2 .3 Sin t a x is

8 .6 Se n t e n cia de r u pt u r a

Java proporciona las siguient es sent encias de rupt ura de ej ecucin:

break: sirve para det ener la ej ecucin t ant o de los bucles co-
m o de la sent encia swit ch. Por t ant o, salt a a la siguient e lnea de c-
digo despus del bucle o swit ch.

cont inue: sirve para det ener la ej ecucin del bloque de cdigo
de un bucle y volver a evaluar la condicin de est e.

ret urn: sirve para finalizar la ej ecucin de un m t odo ( y devol-


ver un valor en el caso de ser necesario) .

Not a: Las guas de program acin est ruct urada prohiben el uso de est as sent en-
cias o aconsej an un uso m uy lm it ado para facilit ar la legibilidad y m ant enim ien-
t o del cdigo

105
MDULO 2

PRCTI CA A: I dent ificar que sent encias son correct as y cules no ( se irn ut ili-
zando las variables segn se va avanzando en el ej ercicio) :

1. int x = 34.5;
2. boolean boo = x;
3. int g = 17;
4. int y = g;
5. y = y + 10;
6. short s;
7. s = y;
8. byt e b = 3;
9. byt e v = b;
10. short n = 12;
11. v = n;
12. byt e k = 128;
13. int p = 3 * g + y;

Solucin:

1. int x = 34.5; - > int x = ( int ) 34.5; / / Posible con downcast ing
2. boolean boo = x; - > No hay solucin
3. int g = 17;
4. int y = g;
5. y = y + 10;
6. short s;
7. s = y; - > s = ( short ) y; / / posible con downcast ing
8. byt e b = 3;
9. byt e v = b;
10. short n = 12;
11. v = n; - > v = ( byt e) n; / / posible con downcast ing
12. byt e k = 128; - > byt e k = ( byt e) 128; / / posible con downcast ing
13. int p = 3 * g + y;

PRCTI CA B: I dent ificar si est e cdigo com pila bien. Si no com pila solucionarlo. Si
com pila decir cul sera la salida.

public class Tem p


{
public st at ic void m ain( St ring[ ] args)
{
int x = 1;

106
Un ida d 2 .3 Sin t a x is

while( x< 10)


{
if( x> 3)
{
Syst em .out .print ln( " Hola" ) ;
}
}
}
}

Solucin:
El cdigo com pila bien. Pero ent ra en un bucle infinit o. Habra que m odificarlo con
la lnea roj a y saldra la palabra Hola siet e veces por pant alla.

public class Tem p


{
public st at ic void m ain( St ring[ ] args)
{
int x = 1;
while( x< 10)
{
x = x + 1;
if( x> 3)
{
Syst em .out .print ln( " Hola" ) ;
}
}
}
}

PRCTI CA C: I dent ificar si est e cdigo com pila bien. Si no com pila solucionarlo.
Si com pila decir cul sera la salida.

public class Tem p


{
public st at ic void m ain( St ring[ ] args)
{
int x = 5;
while( x> 1)
{
x = x - 1;
if( x< 3)
{
Syst em .out .print ln( " Hola" ) ;
}
}
}
}

Solucin:
Com pila y saldra la palabra Hola dos veces por pant alla.

107
MDULO 2

PRCTI CA D : Al siguient e program a Java le falt a un t rozo de cdigo

public class Tem p


{
public st at ic void m ain( St ring[ ] args)
{
int x = 0;
int y = 0;
while( x< 5)
{
/ / TROZO DE CODI GO A SUSTI TUI R
Syst em .out .print ( x + + y + ) ;
x = x + 1;
}
}
}

Seleccionar para cada t rozo de cdigo de la izquierda, la salida por pant alla al
ej ecut ar el program a ant erior con ese t rozo de cdigo

Solucin

108
Un ida d 2 .3 Sin t a x is

PRCTI CA E: Desarrollar un program a Java que m uest re por pant alla los nm eros
prim os del 1 al 1000 y t odos los aos bisiest os ent re el ao 2000 y el 3000.

Vam os a realizar la prct ica con el con el JDK de Sun.

En el caso de que no est puest a la variable de ent orno PATH, abrir una sesin DOS
y aj ust ar la variable de ent orno PATH para que el Sist em a Operat ivo sepa encont rar
las herram ient as del JDK. Para respet ar el valor que ya t uviese la variable PATH le
aadim os % PATH% .

109
MDULO 2

Cream os un direct orio de t rabaj o donde guardar el program a Java.

Aj ust ar la variable de ent orno CLASSPATH para que las herram ient as del JDK sepan
encont rar nuest ras clases Java. Tenem os dos opciones, o aadir el . ( punt o) y
siem pre ej ecut ar las herram ient as en el direct orio donde se encuent re el cdigo, o
aadir el direct orio de t rabaj o y ej ecut ar las herram ient as donde queram os. Para
respet ar el valor que ya t uviese la variable CLASSPATH le aadim os % CLASS-

110
Un ida d 2 .3 Sin t a x is

PATH% .

Ahora arrancam os un edit or de t ext o ( por ej em plo Not epad) para escribir el cdigo
fuent e de nuest ro program a que guardarem os en el fichero Pract icaE.j ava; el
nom bre del fichero debe ser exact am ent e igual ( incluyendo m aysculas y
m insculas) al de la clase Java que vam os a desarrollar.

Y acept am os la creacin de un fichero nuevo.

111
MDULO 2

Escribim os el cdigo y salvam os los cam bios. Cerram os el Not epad.


En la Unidad 2.4 verem os el concept o de clase y m t odo m ain. Mient ras t ant o,
nuest ro cdigo est ar incluido ent re las lnea de cdigo
pu blic cla ss Pract icaE
{
pu blic st a t ic void m ain( St ring[ ] args)
{
}
}

112
Un ida d 2 .3 Sin t a x is

Com pilam os el program a Java con el com pilador j avac . Al com pilador hay que
darle el nom bre del fichero incluyendo su ext ensin.

Si no sale ningn m ensaj e significa que t odo ha ido bien y que ha creado el byt eco-
de, es decir, Pract icaE.class

Por lt im o, ej ecut am os el program a Java con la JVM j ava . A la JVM hay que darle
el nom bre del fichero del byt ecode sin la ext ensin.

113
MDULO 2

Ahora realizarem os la m ism a pract ica con Eclipse

Arrancar Eclipse, ej ecut ando c: \ eclipse3.5.2\ eclipse.exe

Seleccionar la ubicacin del workspace ( o rea de t rabaj o) .

Cerrar la vent ana de bienvenida si aparece ( est a vent ana aparece la prim era vez
que se arranca Eclipse) .

114
Un ida d 2 .3 Sin t a x is

115
MDULO 2

Verificar que la perspect iva Java est abiert a, y sino cam biar a ella

Crear un proyect o nuevo de nom bre Pract icaE

Darle el nom bre y seleccionar Finish.

116
Un ida d 2 .3 Sin t a x is

Crear una clase Java nueva llam ada Pract icaE con el m t odo m ain.

117
MDULO 2

Seleccionar Finish
Escribir el cdigo dent ro de la clase y salvar con Ct rl + S o File - > Save

118
Un ida d 2 .3 Sin t a x is

Por defect o, en eclipse, al salvar los cam bios realizados en un fichero, se realiza la
com pilacin de las clases que est n en el worskpace.

En el caso de producirse algn error de com pilacin, se pueden ver en la vist a Pro-
blem s

Seleccionando la clase Java, con el bot n derecho del rat n ej ecut arla com o Java
Applicat ion

119
MDULO 2

Y verem os com o se abre una consola con el result ado.

120
Un ida d 2 .3 Sin t a x is

En est a unidad hem os vist o la sint axis del cdigo Java, aprendiendo a ut ilizar co-
m e n t a r ios, delim it ar una sent encia Java con el ; y el uso de los e spa cios e n
bla n co.

Se han definido los I de n t ifica dor e s, las Ke yw or ds, las Va r ia ble s y los m bit os
donde se pueden ut ilizar:
At ribut os
Parm et ros de m t odo.
Variables locales
Variables de bloque

Se han vist o los dist int os Tipos de da t os:


t ipos pr im it ivos:
Lgico: boolean
Ca r ct e r : char.
N m e r os e n t e r os: byt e, short , int y long.
N m e r os r e a le s: double y float .

t ipos com ple j os o cla se s: viendo el t ipo especial enum

Se han vist o adem s los dist int os t ipos de Ope r a dor e s:


Ar it m t icos
Re la cion a le s
Condiciona le s
D e de spla za m ie n t o
Lgicos
D e a sign a cin .
Ot r os

Por lt im o se han det erm inado los dist int os t ipos de Sent encias de cont rol de fluj o,
que perm it en ej ecut ar el cdigo de una m anera no secuencial:
Bu cle s: while, do- while, for y for/ in
Bifu r ca cion e s: if- t hen- else y swit ch- case
Ge st in de e x ce pcione s: t ry- cat ch- finally y t hrow
D e r upt u r a : break, cont inue, label: y ret urn.

También podría gustarte