Estructura de control

De Viquipèdia
Dreceres ràpides: navegació, cerca

En llenguatges de programació, les estructures de control permeten modificar el flux d'execució de les instruccions d'un programa informàtic.

Amb les estructures de control es pot:

  • D'acord a una condició, executar un grup o un altre de sentències (If-Then-Else i Select-Case)
  • Executar un grup de sentències mentre existeixi una condició (Do-While)
  • Executar un grup de sentències fins que hi hagi una condició (Do-Until)
  • Executar un grup de sentències un nombre determinat de vegades (For-Next)
  • Etc

Totes les estructures de control tenen un únic punt d'entrada i un únic punt de sortida. Les estructures de control es pot classificar en: seqüencials, iteratives i de control avançades. Això és una de les coses que permet que la programació es regeixi pels principis de la programació estructurada.

Els llenguatges de programació moderns tenen estructures de control similars. Bàsicament el que varia entre les estructures de control dels diferents llenguatges és la seva sintaxi, cada llenguatge té una sintaxi pròpia per expressar l'estructura.

Altres llenguatges ofereixen estructures diferents, com ara els ordres guardats.

Tipus d'estructura de control[modifica | modifica el codi]

Algunes estructures de control en el llenguatge Java

Antecedents[modifica | modifica el codi]

El terme "estructures de control", ve del camp de la ciència computacional. Quan es presenten implementacions de Java per a les estructures de control, ens referim a elles amb la terminologia de l'especificació del llenguatge Java, que es refereixi a ella com instruccions.

Execució seqüencial[modifica | modifica el codi]

Però en general les instruccions s'executen una després de l'altra, en l'ordre en què estan escrites, és a dir, en seqüència. Aquest procés es coneix com a execució seqüencial.

Transferència de control[modifica | modifica el codi]

En Java, com en altres llenguatges de programació per excel·lència com C i/o C++, el programador pot especificar que les següents instruccions a executar potser no sigui la següent en seqüència. Això es coneix com a transferència de control. Cal tenir en compte que la instrucció goto és una paraula reservada però no s'utilitza ni es recomana. Un programa ben estructurat no necessita d'aquesta instrucció. Si saps programar no utilitzessis goto.

Estructura de control: selecció if simple[modifica | modifica el codi]

Es tracta d'una estructura de control que permet redirigir un curs d'acció segons l'avaluació d'una condició simple, sigui falsa o veritable. Per exemple: Escriu un programa en Java que compari dos nombres i indiqueu si quin és major, menor, major i/o igual, menor i/o igual, o si són iguals:

 String strComparacio = "";
...
 
 if (número1 == nombre2)
 
 strComparacio += número1 +" == "+nombre2;
 
 if (número1> nombre2)
 strComparacio += número1 +" > "+nombre2;
 
 if (número1 <nombre2)
 strComparacio += número1 +" < "+nombre2;
 
 if (número1> = nombre2)
 strComparacio += número1 +" >="+nombre2;
 
 if (número1 <= nombre2)
 strComparacio += número1 +" <= "+nombre2;
 
 System.out.println (strComparacion);
...

If-Then-Else[modifica | modifica el codi]

Si la condició és veritable, s'executa el bloc de sentències 1, en cas contrari, s'executa el bloc de sentències 2.

 IF (Condició) THEN
 (Bloc de sentències 1)
 ELSE
 (Bloc de sentències 2)
 END IF

Select-Case[modifica | modifica el codi]

  • S'avalua l'expressió, donant com a resultat un nombre.
  • Després, es recorren els "Case" dins de l'estructura buscant que el nombre coincideixi amb un dels valors.
  • Cal que coincideixin tots els seus valors.
  • Quan es troba la primera coincidència, s'executa el bloc de sentències corresponent i se surt de l'estructura Select-Case.
  • Si no es troba cap coincidència amb cap valor, s'executa el bloc de sentències de la secció "Case Else".
 SELECT (Expressió)
 CASE valor1
 (Bloc de sentències 1)
 CASE valor2
 (Bloc de sentències 2)
 CASE Valor n
 (Bloc de sentències n)
 CASE ELSE
 (Bloc de sentències "Else")
 END SELECT

Do-While[modifica | modifica el codi]

Mentre la condició sigui veritable, s'executaran les sentències del bloc.

 DO WHILE (Condició)
 (Bloc de sentències)
 LOOP

que també pot expressar-se:

 WHILE (Condició)
 (Bloc de sentències)
 WEND

Do-Until[modifica | modifica el codi]

S'executa el bloc de sentències, fins que la condició sigui veritable

 DO
 (Bloc de sentències)
 LOOP UNTIL (Condició)

For-Next[modifica | modifica el codi]

  • Primer, s'avaluen les expressions 1 i 2, donant com a resultat dos nombres.
  • La variable del bucle recorrerà els valors des del nombre donat per l'expressió 1 fins al nombre donat per l'expressió 2.
  • El bloc de sentències s'executarà en cadascun dels valors que prengui la variable del bucle.
 FOR (Variable) = (Expresión1) TO (Expresión2) STEP (Salt)
 (Bloc de sentències)
 NEXT

Estructures niuades[modifica | modifica el codi]

Les estructures de control bàsiques poden niar, és a dir poden posar-se una dins d'una altra.

Estructura For-Next dins d'una estructura If-Then-Else[modifica | modifica el codi]

 IF A> B THEN
 FOR X = 1 TO 5
 (Bloc de sentències 1)
 NEXT
 ELSE
 (Bloc d'ús 2)
 END IF

Estructura If-Then-Else dins d'estructura For-Next[modifica | modifica el codi]

 FOR x = 10 T 20 STEP 2
 IF A == C THEN
 (Bloc d'ús)
 ELSE
 (Bloc d'ús)
 END IF
 NEXT

Estructura For-Next que està dins d'estructura Do-While[modifica | modifica el codi]

 DO WHILE A> 0
 FOR X = 1 TO 10
 (Bloc d'ús)
 NEXT
 A = A - 1
 LOOP

Estructura Do-While que està dins d'estructura For-Next[modifica | modifica el codi]

 FOR X = 1 TO 10
 DO WHILE X <A
 (Bloc d'ús)
 LOOP
 NEXT

Estructura If-Then dins d'estructura For-Next dins d'estructura Do-While[modifica | modifica el codi]

 DO WHILE A> 0
 FOR X = 1 TO 10
 IF A = ​​C THEN
 (Bloc de instrucciones1)
 ELSE
 (Bloc de instrucciones2)
 END IF
 NEXT
 A = A - 1
 LOOP

Vegeu també[modifica | modifica el codi]