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 [Link]. 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 [Link]
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\ [Link]
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.