Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Switch

c

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
Instructiuni si blocuri
Switch
RECURSIVITATE probleme rezolvate

Switch

Instructiunea switch este realizator special de decizii multiple

care testeaza daca o expresie se potriveste cu una dintr-un

numar de valori constante si ramifica corespunzator programul.

In capitolul 1 am scris un program care contorizeaza apari-

tiile fiecarei cifre, a spatiului, si a tuturor celorlalte

caractere, folosind o secventa de if else. Dam in continuare

acelasi program cu instructiunea switch.

main() /* contorizeaza cifre , blancuri , alte caractere */

printf('digits =');

for (i = 0; i < 10; i++)

printf(' %d', ndigit[i]);

printf('nwhite space= %d, other= %dn', nwhite,nother);

}

Switch evalueaza expresia intreaga din paranteze (in acest program

caracterul c) si compara valoarea ei cu toate cazurile. Fiecare

caz trebuie sa fie etichetat cu o constanta intreaga sau caracter

sau cu o expresie constanta. Daca un caz se potriveste cu valoa-

rea expresiei, executia incepe la acel caz. Cazul etichetat 'de-

fault' este executat daca nici unul din cazuri nu este satisfacut.

Un 'default' este optional; daca el nu este prezent si nici unul



din cazuri nu se potriveste nu se executa nici o actiune. Cazurile

si 'default' pot apare in orice ordine. Cazurile trebuie sa fie

toate diferite.

Instructiunea break declanseaza o iesire imediata din switch.

Deoarece cazurile servesc doar ca etichete, dupa ce codul unui caz

a fost executat, executia continua spre urmatoarea instructiune

daca nu nu luati o actiune explicita spre a iesi. Break si return

sint modurile cele mai uzuale de a parasi o instructiune switch. O

instructiune switch poate fi deasemenea folosita si pentru a forta

o iesire imediata dintr-o bucla while, for sau do, asa cum vom

discuta mai departe in acest capitol.

Ramificarea in cazuri este si buna si rea. Pe partea pozi-

tiva, ea permite mai multe cazuri pentru o singura actiune, asa

cum sint cazurile pentru blanc, tab sau linie noua in acest

exemplu. Dar implica deasemenea faptul ca, in mod normal, fie-

care caz trebuie sa se termine cu un break, pentru a preve-

ni ramificarea pe cazul urmator. Iesirea dintr-un caz in altul nu

este buna, fiind inclinata spre dezintegrare atunci cind progra-

mul este modificat. Cu exceptia etichetelor multiple pentru un

singur caz, aceste iesiri dintr-un caz in altul trebuie folo-

site cu economie.

Ca o problema de forma buna, puneti un break dupa ultimul

caz (la noi, cazul default) chiar daca logic nu este necesar.

Intr-o zi cind veti adauga la sfirsit un caz nou, aceasta bucatica

de programare defensiva va va salva.

Exercitiul 3.1. Scrieti o functie expand(s, t) care converteste

caracterele de tipul lui 'linie noua' si 'tab' in secvente

escape vizibile de tipul 'n' si 't' in timp ce se copiaza

sirul s in sirul t. Folositi instructiunea switch.

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 340
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site



Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019. All rights reserved