Documente Academic
Documente Profesional
Documente Cultură
ElementosformalesdellenguajeJava(II)
Enestedocumentopodrsencontrarinformacinrelacionadaconlasintaxisgeneral
necesariaparalaconstruccindeprogramasenJavabasadosencondicionesy
asignaciones.
6.1 Representacindecondiciones
Comosabemos,unacondicinserepresentaconunaexpresinbooleanaqueverificalo
queserequiereparaqueseejecuteono,unconjuntodeinstrucciones.Deacuerdocon
esto,podemosformalizarsuescrituraenellenguajeJavadelasiguienteforma:
if(<Expresinbooleana>){
.
.
.
}
Sirequerimostenerencuentaelcasoenelquenosecumplalacondicin,haremoslo
siguiente:
if(<Expresinbooleana>){
.
.
.
}else{
.
.
.
}
Tengamosencuentaquenousamospuntoycoma(;)paradefinirlaterminacindeun
bloquecondicional,dadoqueestadefinicinsehaceconcorchetes.
Dentrodecadapardecorchetessepuededefinirunconjuntoarbitrariodeinstrucciones
deacuerdoconlastareasquesedebanrealizar;estasinstruccionespuedenserincluso
otrascondicionesocualquierelementodecontrolqueconozcamosmsadelante.Amodo
deejemplo,veamoslarepresentacinenlenguajeJava,delejercicioresueltoenlalectura
4delcurso:
AdrianNicolsMalaverBarrera
AlgoritmoDescuentos
Entradas
libros, cuadernos, lapices: Entero
total: Real
Pre:{libros>=0 Y cuadernos>=0 Y lapices>=0 Y total>= 0}
Inicio
totalConDescuento total
Fin
Salidas
totalConDescuento: Real
Pos:{totalConDescuento >= 0
totalConDescuento = total;
if(libros>3 || cuadernos>6){
AdrianNicolsMalaverBarrera
totalConDescuento = total*0.75;
} else {
if((libros==1 || libros==2) && cuadernos>3 && lapices>=4){
totalConDescuento = total*0.85;
}
}
6.2 Bloquescondicionalesconunasolainstruccin
Cuandodentrodeunacondicinhayunasolainstruccin,esposibledejardeusar
corchetes.Porejemplo:
if(x>3 || y>6)
total = 185;
else
total = 192;
Estoreduceeltamaodelcdigo,peromuchasveces,alquereraadirmsinstrucciones
(enverde)albloquecondicional,olvidamosincluirloscorchetes,incurriendoenerrores
comoeste:
Incorrecto
if(x>3 || y>6)
Correcto
if(x>3 || y>6){
total = 185;
total = 185;
total2 = 134;
total2 = 134;
else
} else {
total = 192;
total = 192;
z = 16;
z = 16;
AdrianNicolsMalaverBarrera
Incorrecto
if(x>7)
if(x>7){
total = 45;
else
Correcto
total = 45;
} else {
total = 46;
total = 46;
q = 170;
q = 170;
}
Estecasoesmscomplicadodecorregir,dadoque
alcdigocompila,perolalneadecdigo
q = 170;siempreseejecuta,porquedarfuera
delbloqueif.
Porsituacionescomoesta,serecomiendausarsiemprecorchetesparadefinirclaramente
dndecomienzaydondeterminaladefinicindeunbloque.
6.3 Bloquesdeseleccinentera
Cuandoserequiereejecutarunconjuntodeinstruccionesdeacuerdoconunaseleccin
entera,esposiblehacerlodelasiguientemanera:
switch(<Expresinnumricadetipoint o char>){
case<Valorconstante1>:
//Instruccionessisedaelcaso1
break;
case<Valorconstante2>:
//Instruccionessisedaelcaso1
break;
case<Valorconstanten>:
//Instruccionessisedaelcason
break;
AdrianNicolsMalaverBarrera
default:
//Instruccionessinosedaningncaso
break;
}
Enestecaso,laexpresininicialseevala,ydeacuerdoconelresultado,seejecutael
conjuntodeinstruccionesdefinidoparauncaso(case)particular.Esimportanteteneren
cuentaquedichoconjuntodeinstruccionesnosedelimitausandocorchetes,
simplementeserompelaejecucinusandolaexpresinbreak.Finalmente,sinoseda
ningncaso,esposibledefiniruncomportamientopordefectousandolapalabra
default.
VeamoselcdigoenJavadelejemplopresentadoenlalectura4:
switch(seleccin){
case 1:
resultado = a+b;
case 2:
resultado = a-b;
case 3:
resultado = a*b;
case 4:
resultado = a/b;
default:
resultado = 0;
}
AdrianNicolsMalaverBarrera