![]() |
Pràctica 4: Les sentències de control condicionals. ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
En aquesta pràctica aprendràs a afegir
als teus programes sentències de control condicionals. Amb aquestes
eines podràs fer que els teus mètodes prenguin decisions en
funció de l'estat dels objectes. |
||||
La sentència condicional if | ||||
Si repasses el funcionament del programa que has analitzat en aquest mòdul observaràs que gairebé no tens control sobre el que passa com a conseqüència de les accions que vas fent. Han d'existir instruments que ens permetin escriure en Java coses similiars a aquestes: "si el saldo de la targeta és zero, no deixis que l'usuari faci la trucada" o "si una trucada és a l'estranger, aplica la tarifa internacional". Aquesta feina la fan les sentències de control condicional. No són les úniques, més endavant descobriràs que també hi ha sentències de control d'iteració. La més simple de les sentències condicionals és el condicional if. Si has estudiat programació d'ordinadors abans ja sabràs que es tracta d'una sentència molt popular, present d'alguna forma o altra en gairebé tots els llenguatges de programació. La seva forma és la següent:
El test, que sempre es posa entre parèntesis, ha de ser qualsevol sentència Java que generi un resultat de tipus boolean (és a dir una variable lògica que pot prendre els dos valors de la lògica formal). El tipus boolean és un dels tipus primitius de Java. A la classe Mobil has utilitzat un munt de variables de tipus int, un altre tipus primitiu de Java. Tot seguit tens alguns exemples de sentències que tornen un valor
boolean. Habitualment són sentències
que comparen valors. Posem un valor a l'esquerra, afegim un operador de comparació i un altre valor a la dreta. Si s'acompleix
la sentència de comparació, el valor de retorn és
true, cert. Si no s'acompleix, el valor de retorn
es false, fals. 10000>1 |
||||
![]() |
Vigila a l'hora de fer les sentències de comparació. L'expressió saldo=2500 no és una sentència de comparació, és una sentència d'assignació. Significa que saldo pren el valor 2500. Com que no retorna un valor boolean, si utilitzes aquesta expressió a la zona de test d'una sentència if el compilador et farà saltar un error.
|
|||
Estirant cap a la simplicitat, les claus {} tampoc no són obligatòries si només hi ha una línia a dins del cos de l'if:
|
||||
![]() |
Anem a donar una mica de vida al mòbil afegint alguna sentència if. El nostre programa és molt generós amb els usuaris: els deixa fer trucades encara que no tinguin saldo. El teu cap de projecte no pot estar massa content de la teva eficàcia com a programador. T'encarrega que modifiquis el programa perquè quan algú vol fer una trucada només sigui possible si el saldo és positiu. Cas que el saldo sigui insuficient, el programa ha d'emetre un avís. Obre el
|
|||
![]() |
|
|||
Crea un objecte i fes algunes trucades; quan et quedis sense saldo per fer una trucada el programa t'ho indicarà.
|
||||
![]() |
Exercicis: Si tens més ganes de treballar, aquestes són algunes de les coses que pots fer afegint sentències if al programa:
|
|||
La sentència condicional switch | ||||
Imagina el següent problema. Hem de fer una utilitat que serveixi
per a classificar les trucades en la següent categoria: barates,
cares i molt cares. Si una trucada suposa 1 o 2 passos és barata.
Si en costa entre 3 i 10 és cara i si en costa més és
molt cara. Aquest tipus de situació és complicada de resoltre
amb sentències if. El que s'utilitza
són sentències switch.
Fes diferents trucades i observa com et respon el programa. La sentència funciona així:
|
||||
Molt bé! En aquesta pràctica has après algunes qüestions bàsiques que ja et fan possible l'escriptura de |