Llenguatge de programació C (IV). Estructures de control I
1991/05/01 Alegria Loinaz, Iñaki | Maritxalar, Montse Iturria: Elhuyar aldizkaria
Permet seleccionar o reproduir expressions mitjançant estructures de control. Si bé les expressions analitzades en el capítol anterior permeten escriure programes totalment lineals i seqüencials, en la majoria dels programes s'ha de decidir si executar o no certes ordres segons les dades, mitjançant estructures condicionals i repetir l'execució dels conjunts d'ordres utilitzant estructures repetitives. L'objectiu d'aquest capítol és la redacció i ús d'aquestes estructures en llenguatge C.
Entre les estructures condicionals, les més utilitzades són dues i el llenguatge C té dues estructures (if) i una opció (switch). En la primera es tria entre dues branques en funció del valor d'una expressió lògica. En la segona, no obstant això, es poden posar tantes branques com es desitgi.
C és molt ric en estructures repetitives, ja que té tres tipus: mentre (while), tornada (do/while) i canviant (for). Les seves característiques seran analitzades més endavant.
Estructura IF
Aquesta estructura o sentència està en qualsevol llenguatge i en C mata les característiques generals, és a dir, s'avalua una expressió lògica i s'executa la branca corresponent a la següent o en defecte d'això ri (else) en funció del resultat.
La sintaxi estructural és la següent:
![](images/A47030.jpg)
Com pot observar-se, el ramal és opcional, distingint l'estructura completa o simple en funció de l'aparició.
Per exemple, l'estructura if que apareix en la part següent del programa és senzilla.
![](images/A47030-a.jpg)
En canvi, en la següent part tenim tota l'estructura:
![](images/A47030-b.jpg)
Cal tenir en compte els següents matisos:
- Expressions de les branques, acabant amb el caràcter.
- En les branques amb més d'una ordre s'ha d'especificar al principi i al final d'aquesta.
- Per a expressar la igualtat en l'expressió condicional s'utilitza l'agent = i no =, ja que en aquest cas no es produeix error, però es produeix una assignació i si el valor assignat és Ø, es considerarà un resultat fals i en la resta com a veritable.
- Quan hi ha una altra if (if kabiatua) dins d'una if hi ha un problema amb les branques, ja que en trobar una else pot dubtar de si correspon a la primera o segona. La regla és que una else correspon sempre amb l'últim if- escrit, sense tenir en compte els marges.
- Condició d'estructura If? expressió 1: expresion2, que pot ser substituïda per l'expressió, com s'aprecia en el programa 1.
![](images/A47030-c.jpg)
Estructura SWITCH
Aquesta estructura permet generar el nombre de branques que desitgem segons el valor d'una expressió, començant cada branca per una paraula clau casi (excepte l'última, que pot començar per la paraula clau default). La sintaxi corresponent és:
![](images/A47030-e.jpg)
Com es pot observar, les expressions en les branques són opcionals com el ramal default. Si en una branca es col·loca més d'una expressió, no cal posar{ i}, però cadascun ha d'acabar amb el caràcter.
Quan es troba un swicth en l'execució s'avalua l'expressió de baldin i es busca en funció del valor en què branca l'expressió comptable té el mateix valor. Si es troben aquestes branques, es realitzen les sentències corresponents a aquesta branca i a les següents. En l'estructura “casi” de Pascal es realitzen únicament les expressions corresponents a la branca. No obstant això, si C ho desitja, l'última expressió de les branques serà brees
...![](images/A47030-d.jpg)
Si el valor de l'expressió no es troba en les branques, es realitzaran les expressions de la branca default, si s'ha escrit aquesta branca.
En el programa 2 s'explica l'ús convencional del switch (utilitzat pel break).
![](images/A47030-f.jpg)
Estructura WHILE
L'estructura repetitiva més general és com la sentència “while-do” de Pascal. Des del punt de vista sintàctic:
![](images/A47030-g.jpg)
S'avalua l'expressió de baldin i si és certa (no Ø) es realitzen les expressions pròpies de l'estructura i es torna a avaluar l'expressió, formant un bigal.
Quan l'avaluació de l'expressió és falsa passa a la següent sentència.
L'expressió entre parèntesi és la condició de repetició i el cos en el qual es repeteix l'altra expressió o conjunt d'expressions. Si el cos té diverses sentències al principi i al final són necessàries. En el programa 4 es pot veure un ús.
![](images/A47030-h.jpg)
Estructura DO-WHILE
While
en aquesta modificació de l'estructura, l'avaluació de la condició es produeix al final de l'estovament. Per tant, en aquesta estructura de do-while el cos s'executa almenys una vegada. Per contra, en l'estructura while pot ocórrer que la primera avaluació sigui falsa. En la resta són exactament iguals.
La sintaxi de l'estructura és la següent:
![](images/A47030-i.jpg)
En el programa 5 es poden veure els canvis realitzats en el programa del factorial do-while.
if
s'utilitza la nova perquè els factorials de Ø i 1 s'executin correctament.
![](images/A47030-j.jpg)
En el següent capítol continuarem amb les estructures i amb l'ajuda d'exemples aprofundirem en l'ús d'estructures de control.
![](https://elia.eus/static/elhuyar/img/elia_RGB.png)
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia