CATEGORII DOCUMENTE |
O operatie des intalnita in orice limbaj este compararea unei variabile cu o anumita valoare, apoi compararea cu o alta in caz ca nu se potriveste cu prima si asa mai departe.Acest proces poate deveni destul de dificil daca s-ar folosi doar instructiuni IF, in functie de diversitatea valorilor pe care trebuie sa le comparam.De exemplu putem ajunge la un set de instructiuni de genul:
if (oper=='+') adunaArg(arg1,arg2);
else if (oper=='-') scadeArg(arg1,arg2);
else if (oper=='*') inmultireArg(arg1,arg2);
else if (oper=='/') imparteArg(arg1,arg2);
Folosirea IF-ului in acest caz este o imbricare deoarece fiecare instructiune else contine o alta if pana se fac toate testele posibile.
Un mecanism prescurtat pentru aceste instruciuni IF imbricate, care poate fi folosit in unele limbaje de programare, este gruparea testelor si actiunilor intr-o singura instructiune.In Java putem grupa actiunile - ca si in C - folosind instructiunea SWITCH.
01: switch(nota)
Instructiunea SWITCH este bazata pe un test ; in exemplul nostru se testeaza variabila nota.Variabila testata, care poate fi de orice tip primitiv (byte, short, char sau int) este comparata pe rand cu fiecare dintre valorile case.Daca se gaseste o potrivire se executa instructiunea specificata dupa test ; daca nu se gaseste nici o potrivire se executa instructiunea default.Aceasta instructiune este de fapt optionala ; daca este omisa si nu se gaseste nici o potrivire case atunci instructiunea SWITCH se incheie fara a se executa nimic.
Implementarea Java a instructiunii SWITCH este oarecum limitata - testele si valorile pot fi doar tipuri primitive simple ce pot fi convertite in int.Intr-o asemenea instructiune nu se pot folosi tipuri primitive de dimensiuni mai mari - large sau float - siruri sau alte obiecte si nici nu se pot testa alte relatii in afara de cea de egalitate.Aceste restrictii limiteaza folosirea SWITCH la cazuri relativ simple.In schimb instructiunile IF imbricate pot fi folosite pentru orice tip de testare.
Trebuie sa mentionez ca dupa o instructiune case putem include oricate instructiuni fara a fi necesare acoladele (ca in cazul lui IF).
Instructiunea break forteaza iesirea din instructiunea SWITCH la gasirea unei potriviri de valoare.Exista posibilitatea nefolosirii acestei instructiuni - caz in care programul executa mai departe instructiunile pana intalneste un break sau pana la sfarsitul instructiunii switch.Instructiunea break intrerupe executia in punctul curent si face un salt la codul aflat dincolo de urmatoarea acolada inchisa }.
Avantajul nefolosirii lui break apare atunci cand se doreste executarea acelorasi instructiuni pentru mai multe valori.Pentru aceasta se folosesc mai multe linii case fara instructiuni ; astfel, switch va executa primele instructiuni pe care le va intalni.De exemplu, in urmatoarea instructiune switch sirul 'x este un numar par' este afisat doar daca x are una dintre valorile 2, 4, 6 sau 8.Toate celelalte valori ale lui x duc la afisarea textului default:
01: switch(x)
In cele ce urmeaza vom detalia inca un exemplu care foloseste instructiunea SWITCH.Aceasta clasa converteste valorile intregi in cuvintele ce le denumesc.
01: class CititorNumere
16: }
17: public static void main(String argumente[])
22: }
Instructiunea switch preia un argument intreg care este transmis metodei conversieNumar() care, daca gaseste o potrivire, intoarce valoarea corespunzatoare sub forma de sir.
Nu este nevoie de instructiuni break in CititorNumere deoarece se foloseste in schimb instructiunea return.Aceasta este asemanatoare cu break, deosebirea fiind ca return iese definitiv din metoda si returneaza o valoare.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1488
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved